home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1992 June: ROMin Holiday / ADC Developer CD (1992-06) (''ROMin Holiday'')_iso / Developer Connection - 06-1992.iso / Developer Essentials / Technical Docs / Inside Macintosh / Inside Macintosh Vol. VI / Browser / Support files / Interfaces / ResourcesHelp data < prev    next >
Encoding:
Text File  |  1991-04-05  |  346.1 KB  |  7,988 lines  |  [TEXT/MPS ]

  1. æKY CopyrightNotice
  2. æC  Copyright Apple Computer, Inc. 1985-1991, All rights reserved.
  3. 411 - Resources Help - MPW 3.2 Final Release.
  4. Thursday, April 4, 1991 8:44:57 AM
  5.  
  6.  
  7. æKY Help
  8. ResourcesHelp
  9. æKL AboutResourcesHelp
  10. BalloonTypes.r
  11. Cmdo.r
  12. CTBTypes.r
  13. InstallerTypes.r
  14. MPWTypes.r
  15. Pict.r
  16. SIOW.h
  17. siow.r
  18. SysTypes.r
  19. Types.r
  20.  
  21.  
  22. æKY AboutResourcesHelp
  23. æC
  24.  
  25. Version 1.0 Final  -- Shipped with MPW 3.2 Final
  26.  
  27. This version contains the new and updated files to support System 7.0.
  28.  
  29. æKY BalloonTypes.r
  30. æKL 
  31. hdlg
  32. HelpMgrVersion               
  33. hfdr
  34. hmAbsoluteCoords             
  35. HMCompareItemID            
  36. hmDefaultOptions             
  37. hmMatchInTitle              
  38. HMNamedResourceID         
  39. hmnu
  40. HMPictItemID                 
  41. hmSaveBitsNoWindow           
  42. hmSaveBitsWindow             
  43. HMSkipItemID               
  44. HMStringItemID               
  45. HMStringResItemID            
  46. HMSTRResItemID               
  47. HMTEResItemID                
  48. HMTrackCntlID             
  49. hmUseSubID                   
  50. hovr
  51. hrct
  52. hwin
  53. kBalloonWDEFID             
  54. kHMHelpID                
  55. kHMHelpMenuID           
  56.  
  57. æKY HelpMgrVersion               
  58. æFr BalloonTypes.r
  59. æT #define
  60. æD #define HelpMgrVersion                2       /* version of Help Manager */
  61. æC 
  62.  
  63. æKY kHMHelpID                
  64. æFr BalloonTypes.r
  65. æT #define
  66. æD #define kHMHelpID                 -5696       /* resource ID of Help Manager resources */
  67. æC 
  68.  
  69. æKY kHMHelpMenuID           
  70. æFr BalloonTypes.r
  71. æT #define
  72. æD #define kHMHelpMenuID            -16490       /* resource ID of Help Manager Menu resource */
  73. æC 
  74.  
  75. æKY kBalloonWDEFID             
  76. æFr BalloonTypes.r
  77. æT #define
  78. æD #define kBalloonWDEFID              126          /* resource ID of Balloon WDEF procedure */
  79. æC 
  80.  
  81. æKY hmDefaultOptions             
  82. æFr BalloonTypes.r
  83. æT #define
  84. æD #define hmDefaultOptions              0       /* default options for help manager resources */
  85. æC 
  86.  
  87. æKY hmUseSubID                   
  88. æFr BalloonTypes.r
  89. æT #define
  90. æD #define hmUseSubID                    1       /* treat resID's in resources */
  91. æC 
  92.  
  93. æKY hmAbsoluteCoords             
  94. æFr BalloonTypes.r
  95. æT #define
  96. æD #define hmAbsoluteCoords              2       /* ignore window port origin and treat rectangles as absolute coords (local to window) */
  97. æC 
  98.  
  99. æKY hmSaveBitsNoWindow           
  100. æFr BalloonTypes.r
  101. æT #define
  102. æD #define hmSaveBitsNoWindow            4       /* don't create a window, just blast bits on screen. No update event is generated */
  103. æC 
  104.  
  105. æKY hmSaveBitsWindow             
  106. æFr BalloonTypes.r
  107. æT #define
  108. æD #define hmSaveBitsWindow              8       /* create a window, but restore bits behind window when window goes away & generate update event */
  109. æC 
  110.  
  111. æKY hmMatchInTitle              
  112. æFr BalloonTypes.r
  113. æT #define
  114. æD #define hmMatchInTitle               16       /* for hwin resources, match string anywhere in window title string */
  115. æC 
  116.  
  117. æKY HMStringItemID               
  118. æFr BalloonTypes.r
  119. æT #define
  120. æD #define HMStringItemID                1       /* pstring is used in help message */
  121. æC 
  122.  
  123. æKY HMPictItemID                 
  124. æFr BalloonTypes.r
  125. æT #define
  126. æD #define HMPictItemID                  2       /* 'PICT' resource ID is used in help message */
  127. æC 
  128.  
  129. æKY HMStringResItemID            
  130. æFr BalloonTypes.r
  131. æT #define
  132. æD #define HMStringResItemID             3       /* 'STR#' resource ID and index is used in help message */
  133. æC 
  134.  
  135. æKY HMTEResItemID                
  136. æFr BalloonTypes.r
  137. æT #define
  138. æD #define HMTEResItemID                 6       /* Styled Text Edit resources are used in help message */
  139. æC 
  140.  
  141. æKY HMSTRResItemID               
  142. æFr BalloonTypes.r
  143. æT #define
  144. æD #define HMSTRResItemID                7       /* 'STR ' resource ID is used in help message */
  145. æC 
  146.  
  147. æKY HMSkipItemID               
  148. æFr BalloonTypes.r
  149. æT #define
  150. æD #define HMSkipItemID                256          /* don't display a balloon */
  151. æC 
  152.  
  153. æKY HMCompareItemID            
  154. æFr BalloonTypes.r
  155. æT #define
  156. æD #define HMCompareItemID             512       /* for hmnu resources, compare menu item to string and use help msg if match */
  157. æC 
  158.  
  159. æKY HMNamedResourceID         
  160. æFr BalloonTypes.r
  161. æT #define
  162. æD #define HMNamedResourceID          1024       /* for hmnu resources, use menu item as call to GetNamedResource() to fetch resource */
  163. æC 
  164.  
  165. æKY HMTrackCntlID             
  166. æFr BalloonTypes.r
  167. æT #define
  168. æD #define HMTrackCntlID              2048       /* not yet implemented, reserved */
  169. æC 
  170.  
  171. æKY hmnu
  172. æFr BalloonTypes.r
  173. æT 
  174. æD 
  175. /*----------------------------hmnu • Help Mgr Menu Balloon Template----------------------------*/
  176. type 'hmnu' {
  177.         integer;                                    /* Help Version */
  178.         longint;                                    /* Options */
  179.         integer;                                    /* Balloon ProcID */
  180.         integer;                                    /* Balloon variant */
  181.         integer = $$CountOf(HMenuArray);            /* Count of menu items (below) */
  182.  
  183.         switch {            /* Special Message for missing array items */
  184.                 case HMStringItem:
  185. hmnuMissStringBeg:      integer = (hmnuMissStringEnd - hmnuMissStringBeg) / 8;
  186.                         key int = HMStringItemID;
  187.                         pstring;            /* missing HMenuArray items (Enabled)  */
  188.                         pstring;            /* missing HMenuArray items (Disabled)  */
  189.                         pstring;            /* missing HMenuArray items (checked) */
  190.                         pstring;            /* missing HMenuArray items (other)  */
  191.                         align word;         /* always word align the code for the pstring */
  192. hmnuMissStringEnd:                      
  193.                 case HMPictItem:
  194. hmnuMissPictBeg:        integer = (hmnuMissPictEnd - hmnuMissPictBeg) / 8;
  195.                         key int = HMPictItemID;
  196.                         integer;            /* use for missing HMenuArray items  */
  197.                         integer;            /* use for missing HMenuArray items  */
  198.                         integer;            /* use for missing HMenuArray items  */
  199.                         integer;            /* use for missing HMenuArray items  */
  200. hmnuMissPictEnd:
  201.                 case HMStringResItem:
  202. hmnuMissStringResBeg:   integer = (hmnuMissStringResEnd - hmnuMissStringResBeg) / 8;
  203.                         key int = HMStringResItemID;
  204.                         integer; integer;   /* Miss or 0 HMenuArray STR# res ID, index # */
  205.                         integer; integer;   /* Miss or 0 HMenuArray STR# res ID, index # */
  206.                         integer; integer;   /* Miss or 0 HMenuArray STR# res ID, index # */
  207.                         integer; integer;   /* Miss or 0 HMenuArray STR# res ID, index # */
  208. hmnuMissStringResEnd:
  209.                 case HMTEResItem:
  210. hmnuMissTEResBeg:       integer = (hmnuMissTEResEnd - hmnuMissTEResBeg) / 8;
  211.                         key int = HMTEResItemID;
  212.                         integer;            /* use for missing HMenuArray items */
  213.                         integer;            /* use for missing HMenuArray items */
  214.                         integer;            /* use for missing HMenuArray items */
  215.                         integer;            /* use for missing HMenuArray items */
  216. hmnuMissTEResEnd:
  217.                 case HMSTRResItem:
  218. hmnuMissSTRResBeg:      integer = (hmnuMissSTRResEnd - hmnuMissSTRResBeg) / 8;
  219.                         key int = HMSTRResItemID;
  220.                         integer;            /* use for missing HMenuArray items */
  221.                         integer;            /* use for missing HMenuArray items */
  222.                         integer;            /* use for missing HMenuArray items */
  223.                         integer;            /* use for missing HMenuArray items */
  224. hmnuMissSTRResEnd:
  225.                 case HMSkipItem:
  226. hmnuMissSkipBeg:        integer = (hmnuMissSkipEnd - hmnuMissSkipBeg) / 8;
  227.                         key int = HMSkipItemID; /* use when there is no missing msg */
  228. hmnuMissSkipEnd:                        
  229.             };
  230.             
  231.         array HMenuArray {
  232.                 switch {
  233.                     case HMStringItem:
  234. hmnuStringBeg:          integer = (hmnuStringEnd[$$ArrayIndex(HMenuArray)] - hmnuStringBeg[$$ArrayIndex(HMenuArray)]) / 8;
  235.                         key int = HMStringItemID;
  236.                         pstring;            /* Enabled menu message string  */
  237.                         pstring;            /* Disabled menu message string */
  238.                         pstring;            /* Checked menu message string */
  239.                         pstring;            /* other menu message string */
  240.                         align word;
  241. hmnuStringEnd:                      
  242.                     case HMPictItem:
  243. hmnuPictBeg:            integer = (hmnuPictEnd[$$ArrayIndex(HMenuArray)] - hmnuPictBeg[$$ArrayIndex(HMenuArray)]) / 8;
  244.                         key int = HMPictItemID;
  245.                         integer;            /* Enabled menu message pict ID  */
  246.                         integer;            /* Disabled menu message pict ID */
  247.                         integer;            /* Checked menu message pict ID */
  248.                         integer;            /* other menu message pict ID */        
  249. hmnuPictEnd:                                                
  250.                     case HMStringResItem:
  251. hmnuStringResBeg:       integer = (hmnuStringResEnd[$$ArrayIndex(HMenuArray)] - hmnuStringResBeg[$$ArrayIndex(HMenuArray)]) / 8;
  252.                         key int = HMStringResItemID;
  253.                         integer; integer;   /* Enabled STR# res ID, index # */
  254.                         integer; integer;   /* Disabled STR# res ID, index # */
  255.                         integer; integer;   /* Checked menu message STR# res ID, index # */
  256.                         integer; integer;   /* other menu message STR# res ID, index # */
  257. hmnuStringResEnd:                       
  258.                     case HMTEResItem:
  259. hmnuTEResBeg:           integer = (hmnuTEResEnd[$$ArrayIndex(HMenuArray)] - hmnuTEResBeg[$$ArrayIndex(HMenuArray)]) / 8;
  260.                         key int = HMTEResItemID;
  261.                         integer;            /* Enabled menu message TERes ID */
  262.                         integer;            /* Disabled menu message TERes ID */
  263.                         integer;            /* Checked message TERes ID */
  264.                         integer;            /* other menu message TERes ID */   
  265. hmnuTEResEnd:                       
  266.                     case HMSTRResItem:
  267. hmnuSTRResBeg:          integer = (hmnuSTRResEnd[$$ArrayIndex(HMenuArray)] - hmnuSTRResBeg[$$ArrayIndex(HMenuArray)]) / 8;
  268.                         key int = HMSTRResItemID;
  269.                         integer;            /* Enabled menu message STR ID */
  270.                         integer;            /* Disabled menu message STR ID */
  271.                         integer;            /* Checked message STR ID */
  272.                         integer;            /* other menu message STR ID */ 
  273. hmnuSTRResEnd:                      
  274.                     case HMSkipItem:
  275. hmnuSkipBeg:            integer = (hmnuSkipEnd[$$ArrayIndex(HMenuArray)] - hmnuSkipBeg[$$ArrayIndex(HMenuArray)]) / 8;
  276.                         key int = HMSkipItemID;
  277. hmnuSkipEnd:                        
  278.                     case HMCompareItem:
  279. hmnuCompareBeg:         integer = (hmnuCompareEnd[$$ArrayIndex(HMenuArray)] - hmnuCompareBeg[$$ArrayIndex(HMenuArray)]) / 8;
  280.                         key int = HMCompareItemID;
  281.                         pstring;            /* if itemstr matches, use this item, else goto next item */
  282.                         align word;
  283.                         
  284.                         switch {                    /* case the message type */
  285.                     
  286.                             case HMStringItem:
  287.                                 key int = HMStringItemID;
  288.                                 pstring;            /* Enabled menu message string  */
  289.                                 pstring;            /* Disabled menu message string */
  290.                                 pstring;            /* Checked menu message string */
  291.                                 pstring;            /* other menu message string */
  292.                                 align word;
  293.  
  294.                             case HMPictItem:
  295.                                 key int = HMPictItemID;
  296.                                 integer;            /* Enabled menu message pict ID  */
  297.                                 integer;            /* Disabled menu message pict ID */
  298.                                 integer;            /* Checked menu message pict */
  299.                                 integer;            /* other menu message pict */       
  300.  
  301.                             case HMStringResItem:
  302.                                 key int = HMStringResItemID;
  303.                                 integer; integer;   /* Enabled STR# res ID, index # */
  304.                                 integer; integer;   /* Disabled STR# res ID, index # */
  305.                                 integer; integer;   /* Checked menu message STR# res ID, index # */
  306.                                 integer; integer;   /* other menu message STR# res ID, index # */
  307.  
  308.                             case HMTEResItem:
  309.                                 key int = HMTEResItemID;
  310.                                 integer;            /* Enabled menu message TERes ID */
  311.                                 integer;            /* Disabled menu message TERes ID */
  312.                                 integer;            /* Checked menu message TERes ID */
  313.                                 integer;            /* other menu message TERes ID */   
  314.  
  315.                             case HMSTRResItem:
  316.                                 key int = HMSTRResItemID;
  317.                                 integer;            /* Enabled menu message STR ID */
  318.                                 integer;            /* Disabled menu message STR ID */
  319.                                 integer;            /* Checked menu message STR ID */
  320.                                 integer;            /* other menu message STR ID */ 
  321.  
  322.                             case HMSkipItem:
  323.                                 key int = HMSkipItemID;
  324.                         };
  325. hmnuCompareEnd:             
  326.                     case HMNamedResourceItem:
  327. hmnuNamedResBeg:        integer = (hmnuNamedResEnd[$$ArrayIndex(HMenuArray)] - hmnuNamedResBeg[$$ArrayIndex(HMenuArray)]) / 8;
  328.                         key int = HMNamedResourceID;
  329.                         literal longint;    /*  res type of resource to fetch, using item name  */
  330. hmnuNamedResEnd:                        
  331.                 };
  332.         };
  333. };
  334. æC 
  335.  
  336. æKY hdlg
  337. æFr BalloonTypes.r
  338. æT 
  339. æD 
  340. /*----------------------------hdlg • Help Mgr Dialog Balloon Template--------------------------*/
  341. type 'hdlg' {
  342.         integer;                                    /* Help Version */
  343.         integer;                                    /* item # (0-based) of first DITL item */
  344.         longint;                                    /* Options  */
  345.         integer;                                    /* Balloon ProcID */
  346.         integer;                                    /* Balloon variant */
  347.         
  348.         integer = $$CountOf(HDialogArray);          /* Count of HDialogArray items  */
  349.         
  350.         switch {            /* Special Messages for missing array items */
  351.                 case HMStringItem:
  352. hdlgMissStringBeg:      integer = (hdlgMissStringEnd - hdlgMissStringBeg) / 8;
  353.                         key int = HMStringItemID;
  354.                         point;                          /* tip          */
  355.                         rect;                           /* hotRect      */
  356.                         pstring;            /* use for missing HDialogArray items  */
  357.                         pstring;            /* use for missing HDialogArray items  */
  358.                         pstring;            /* use for missing HDialogArray items  */
  359.                         pstring;            /* use for missing HDialogArray items  */
  360.                         align word;         /* always word align the code for the pstring */
  361. hdlgMissStringEnd:                      
  362.                 case HMPictItem:
  363. hdlgMissPictBeg:        integer = (hdlgMissPictEnd - hdlgMissPictBeg) / 8;
  364.                         key int = HMPictItemID;
  365.                         point;                          /* tip          */
  366.                         rect;                           /* hotRect      */
  367.                         integer;            /* use for missing HDialogArray items  */
  368.                         integer;            /* use for missing HDialogArray items  */
  369.                         integer;            /* use for missing HDialogArray items  */
  370.                         integer;            /* use for missing HDialogArray items  */
  371. hdlgMissPictEnd:
  372.                 case HMStringResItem:
  373. hdlgMissStringResBeg:   integer = (hdlgMissStringResEnd - hdlgMissStringResBeg) / 8;
  374.                         key int = HMStringResItemID;
  375.                         point;                          /* tip          */
  376.                         rect;                           /* hotRect      */
  377.                         integer; integer;   /* Miss or 0 HDialogArray STR# res ID, index # */
  378.                         integer; integer;   /* Miss or 0 HDialogArray STR# res ID, index # */
  379.                         integer; integer;   /* Miss or 0 HDialogArray STR# res ID, index # */
  380.                         integer; integer;   /* Miss or 0 HDialogArray STR# res ID, index # */
  381. hdlgMissStringResEnd:
  382.                 case HMTEResItem:
  383. hdlgMissTEResBeg:       integer = (hdlgMissTEResEnd - hdlgMissTEResBeg) / 8;
  384.                         key int = HMTEResItemID;
  385.                         point;                          /* tip          */
  386.                         rect;                           /* hotRect      */
  387.                         integer;            /* use for missing HDialogArray items */
  388.                         integer;            /* use for missing HDialogArray items */
  389.                         integer;            /* use for missing HDialogArray items */
  390.                         integer;            /* use for missing HDialogArray items */
  391. hdlgMissTEResEnd:
  392.                 case HMSTRResItem:
  393. hdlgMissSTRResBeg:      integer = (hdlgMissSTRResEnd - hdlgMissSTRResBeg) / 8;
  394.                         key int = HMSTRResItemID;
  395.                         point;                          /* tip          */
  396.                         rect;                           /* hotRect      */
  397.                         integer;            /* use for missing HDialogArray items */
  398.                         integer;            /* use for missing HDialogArray items */
  399.                         integer;            /* use for missing HDialogArray items */
  400.                         integer;            /* use for missing HDialogArray items */
  401. hdlgMissSTRResEnd:
  402.                 case HMSkipItem:
  403. hdlgMissSkipBeg:        integer = (hdlgMissSkipEnd - hdlgMissSkipBeg) / 8;
  404.                         key int = HMSkipItemID; /* use when there is no missing msg */
  405. hdlgMissSkipEnd:                        
  406.             };
  407.  
  408.         /* this is an array of records corresponding to dialog items in a dialog */
  409.         array HDialogArray {
  410.                 switch {
  411.                     case HMStringItem:
  412. hdlgStringBeg:          integer = (hdlgStringEnd[$$ArrayIndex(HDialogArray)] - hdlgStringBeg[$$ArrayIndex(HDialogArray)]) / 8;
  413.                         key int = HMStringItemID;       /* helpType     */
  414.                         point;                          /* tip          */
  415.                         rect;                           /* hotRect      */
  416.                         pstring;        /* Enabled dialog item message string   */
  417.                         pstring;        /* Disabled dialog item message string  */
  418.                         pstring;        /* Checked dialog item message string   */
  419.                         pstring;        /* other dialog item message string     */
  420.                         align word;     /* always word align the code */
  421. hdlgStringEnd:                      
  422.                     case HMPictItem:
  423. hdlgPictBeg:            integer = (hdlgPictEnd[$$ArrayIndex(HDialogArray)] - hdlgPictBeg[$$ArrayIndex(HDialogArray)]) / 8;
  424.                         key int = HMPictItemID;         /* helpType     */
  425.                         point;                          /* tip          */
  426.                         rect;                           /* hotRect      */
  427.                         integer;        /* Enabled dialog item message pict ID  */
  428.                         integer;        /* Disabled dialog item message pict ID */
  429.                         integer;        /* Checked dialog item message pict ID  */
  430.                         integer;        /* other dialog item message pict ID    */  
  431. hdlgPictEnd:                        
  432.                     case HMStringResItem:
  433. hdlgStringResBeg:       integer = (hdlgStringResEnd[$$ArrayIndex(HDialogArray)] - hdlgStringResBeg[$$ArrayIndex(HDialogArray)]) / 8;
  434.                         key int = HMStringResItemID;    /* helpType     */
  435.                         point;                          /* tip          */
  436.                         rect;                           /* hotRect      */
  437.                         integer; integer;   /* Enabled STR# res ID, index #     */
  438.                         integer; integer;   /* Disabled STR# res ID, index #    */
  439.                         integer; integer;   /* Checked STR# res ID, index #     */
  440.                         integer; integer;   /* other STR# res ID, index #       */
  441. hdlgStringResEnd:                       
  442.                     case HMTEResItem:
  443. hdlgTEResBeg:           integer = (hdlgTEResEnd[$$ArrayIndex(HDialogArray)] - hdlgTEResBeg[$$ArrayIndex(HDialogArray)]) / 8;
  444.                         key int = HMTEResItemID;        /* helpType     */
  445.                         point;                          /* tip          */
  446.                         rect;                           /* hotRect      */
  447.                         integer;        /* Enabled dialog item message TERes ID */
  448.                         integer;        /* Disabled item message TERes ID       */
  449.                         integer;        /* Checked item message TERes ID        */
  450.                         integer;        /* other item message TERes ID          */  
  451. hdlgTEResEnd:                       
  452.                     case HMSTRResItem:
  453. hdlgSTRResBeg:          integer = (hdlgSTRResEnd[$$ArrayIndex(HDialogArray)] - hdlgSTRResBeg[$$ArrayIndex(HDialogArray)]) / 8;
  454.                         key int = HMSTRResItemID;       /* helpType     */
  455.                         point;                          /* tip          */
  456.                         rect;                           /* hotRect      */
  457.                         integer;        /* Enabled dialog item message STR ID   */
  458.                         integer;        /* Disabled dialog item message STR ID  */
  459.                         integer;        /* Checked dialog item message STR ID   */
  460.                         integer;        /* other dialog item message STR ID     */  
  461. hdlgSTRResEnd:                      
  462.                     case HMSkipItem:
  463. hdlgSkipBeg:            integer = (hdlgSkipEnd[$$ArrayIndex(HDialogArray)] - hdlgSkipBeg[$$ArrayIndex(HDialogArray)]) / 8;
  464.                         key int = HMSkipItemID;
  465. hdlgSkipEnd:                        
  466.                 };
  467.         };
  468. };
  469. æC 
  470.  
  471. æKY hwin
  472. æFr BalloonTypes.r
  473. æT 
  474. æD /*----------------------------hwin • Help Mgr Window Balloon Template--------------------------*/
  475. type 'hwin' {
  476.         integer;                                    /* Help Version */
  477.         longint;                                    /* Options              */
  478.         integer = $$CountOf(HWinArray);             /* Count                */
  479.         array HWinArray {
  480.                 integer;            /* resource ID for help template        */
  481.                 literal longint;    /* res type of template (hdlg or hrct)  */
  482.                 integer;            /* len of comparison string             */
  483.                 pstring;            /* comparison string for window title   */
  484.                 align word;
  485.         };
  486. };
  487. æC 
  488.  
  489. æKY hrct
  490. æFr BalloonTypes.r
  491. æT 
  492. æD /*----------------------------hrct • Help Mgr Rectangle List Template-------------------------*/
  493. type 'hrct' {
  494.         integer;                                    /* Help Version         */
  495.         longint;                                    /* Options              */
  496.         integer;                                    /* Balloon ProcID       */
  497.         integer;                                    /* Balloon Variant      */
  498.         integer = $$CountOf(HRectArray);            /* Count of hrct Msgs   */
  499.  
  500.         array HRectArray {
  501.                 switch {
  502.                     case HMStringItem:
  503. hrctStringBeg:          integer = (hrctStringEnd[$$ArrayIndex(HRectArray)] - hrctStringBeg[$$ArrayIndex(HRectArray)]) / 8;
  504.                         key int = HMStringItemID;   /* helpType         */
  505.                         point;                      /* tip              */
  506.                         rect;                       /* hotRect          */
  507.                         pstring;                    /* STR255           */
  508.                         align word;                 /* keep aligned     */
  509. hrctStringEnd:
  510.                     case HMPictItem:
  511. hrctPictBeg:            integer = (hrctPictEnd[$$ArrayIndex(HRectArray)] - hrctPictBeg[$$ArrayIndex(HRectArray)]) / 8;
  512.                         key int = HMPictItemID;     /* helpType         */
  513.                         point;                      /* tip              */
  514.                         rect;                       /* hotRect          */
  515.                         integer;                    /* Picture Res ID   */
  516. hrctPictEnd:
  517.                     case HMStringResItem:
  518. hrctStringResBeg:       integer = (hrctStringResEnd[$$ArrayIndex(HRectArray)] - hrctStringResBeg[$$ArrayIndex(HRectArray)]) / 8;
  519.                         key int = HMStringResItemID;/* helpType         */
  520.                         point;                      /* tip              */
  521.                         rect;                       /* hotRect          */
  522.                         integer; integer;           /* STR# ID, index # */
  523. hrctStringResEnd:
  524.                     case HMTEResItem:
  525. hrctTEResBeg:           integer = (hrctTEResEnd[$$ArrayIndex(HRectArray)] - hrctTEResBeg[$$ArrayIndex(HRectArray)]) / 8;
  526.                         key int = HMTEResItemID;    /* helpType         */
  527.                         point;                      /* tip              */
  528.                         rect;                       /* hotRect          */
  529.                         integer;                    /* TextEdit res ID  */
  530. hrctTEResEnd:
  531.                     case HMSTRResItem:
  532. hrctSTRResBeg:          integer = (hrctSTRResEnd[$$ArrayIndex(HRectArray)] - hrctSTRResBeg[$$ArrayIndex(HRectArray)]) / 8;
  533.                         key int = HMSTRResItemID;   /* helpType         */
  534.                         point;                      /* tip              */
  535.                         rect;                       /* hotRect          */
  536.                         integer;                    /* STR res ID       */
  537. hrctSTRResEnd:
  538.                     case HMSkipItem:
  539. hrctSkipBeg:            integer = (hrctSkipEnd[$$ArrayIndex(HRectArray)] - hrctSkipBeg[$$ArrayIndex(HRectArray)]) / 8;
  540.                         key int = HMSkipItemID;     /* skip item (leave a hole) */
  541.                         point;                      /* tip options (keep same structure as other items) */
  542.                         rect;                       /* skip this rect           */
  543. hrctSkipEnd:
  544.                     case HMTrackControlStringItem:
  545. hrctTCStringBeg:        integer = (hrctTCStringEnd[$$ArrayIndex(HRectArray)] - hrctTCStringBeg[$$ArrayIndex(HRectArray)]) / 8;
  546.                         key int = HMStringItemID+HMTrackCntlID;
  547.                         point;                      /* tip              */
  548.                         rect;                       /* hotRect          */
  549.                         pstring;                    /* Enabled control message string       */
  550.                         pstring;                    /* Disabled control message string      */
  551.                         pstring;                    /* Checked control message string       */
  552.                         pstring;                    /* other control message string         */
  553.                         align word;                 /* keep aligned     */
  554. hrctTCStringEnd:                        
  555.                     case HMTrackControlPictItem:
  556. hrctTCPictBeg:          integer = (hrctTCPictEnd[$$ArrayIndex(HRectArray)] - hrctTCPictBeg[$$ArrayIndex(HRectArray)]) / 8;
  557.                         key int = HMPictItemID+HMTrackCntlID;
  558.                         point;                      /* tip              */
  559.                         rect;                       /* hotRect          */
  560.                         integer;                    /* Enabled control message pict ID      */
  561.                         integer;                    /* Disabled control message pict ID     */
  562.                         integer;                    /* Checked control message pict ID      */
  563.                         integer;                    /* other control message pict ID        */  
  564. hrctTCPictEnd:                      
  565.                     case HMTrackControlStringResItem:
  566. hrctTCStringResBeg:     integer = (hrctTCStringResEnd[$$ArrayIndex(HRectArray)] - hrctTCStringResBeg[$$ArrayIndex(HRectArray)]) / 8;
  567.                         key int = HMStringResItemID+HMTrackCntlID;
  568.                         point;                      /* tip              */
  569.                         rect;                       /* hotRect          */
  570.                         integer; integer;           /* Enabled STR# res ID, index #     */
  571.                         integer; integer;           /* Disabled STR# res ID, index #    */
  572.                         integer; integer;           /* Checked STR# res ID, index #     */
  573.                         integer; integer;           /* other STR# res ID, index #       */
  574. hrctTCStringResEnd:                     
  575.                     case HMTrackControlTEResItem:
  576. hrctTCTEResBeg:         integer = (hrctTCTEResEnd[$$ArrayIndex(HRectArray)] - hrctTCTEResBeg[$$ArrayIndex(HRectArray)]) / 8;
  577.                         key int = HMTEResItemID+HMTrackCntlID;
  578.                         point;                      /* tip              */
  579.                         rect;                       /* hotRect          */
  580.                         integer;                    /* Enabled TextEdit hdl spec ID     */
  581.                         integer;                    /* Disabled TextEdit hdl spec ID    */
  582.                         integer;                    /* Checked TextEdit hdl spec ID     */
  583.                         integer;                    /* other TextEdit hdl spec ID       */
  584. hrctTCTEResEnd:                     
  585.                     case HMTrackControlSTRResItem:
  586. hrctTCSTRResBeg:        integer = (hrctTCSTRResEnd[$$ArrayIndex(HRectArray)] - hrctTCSTRResBeg[$$ArrayIndex(HRectArray)]) / 8;
  587.                         key int = HMSTRResItemID+HMTrackCntlID;
  588.                         point;                      /* tip              */
  589.                         rect;                       /* hotRect          */
  590.                         integer;                    /* Enabled control message STR ID       */
  591.                         integer;                    /* Disabled control message STR ID      */
  592.                         integer;                    /* Checked control message STR ID       */
  593.                         integer;                    /* other control message STR ID         */  
  594. hrctTCSTRResEnd:                        
  595.                 };
  596.         };
  597. };
  598. æC 
  599.  
  600. æKY hovr
  601. æFr BalloonTypes.r
  602. æT 
  603. æD /*----------------------------hovr • Help Mgr Override Resource Template-------------------------*/
  604.  
  605. type 'hovr' {
  606.         integer;                                    /* Help Version */
  607.         longint;                                    /* Options */
  608.         integer;                                    /* Balloon ProcID */
  609.         integer;                                    /* Balloon variant */
  610.         integer = $$CountOf(HOverrideArray);        /* Count of array items (below) */
  611.  
  612.         switch {            /* Special Message for missing array items */
  613.                 case HMStringItem:
  614. hovrMissStringBeg:      integer = (hovrMissStringEnd - hovrMissStringBeg) / 8;
  615.                         key int = HMStringItemID;
  616.                         pstring;                /* missing HOverrideArray item  */
  617.                         align word;             /* always word align the code for the pstring */
  618. hovrMissStringEnd:                      
  619.                 case HMPictItem:
  620. hovrMissPictBeg:        integer = (hovrMissPictEnd - hovrMissPictBeg) / 8;
  621.                         key int = HMPictItemID;
  622.                         integer;                /* missing HOverrideArray item  */
  623. hovrMissPictEnd:
  624.                 case HMStringResItem:
  625. hovrMissStringResBeg:   integer = (hovrMissStringResEnd - hovrMissStringResBeg) / 8;
  626.                         key int = HMStringResItemID;
  627.                         integer; integer;       /* Miss or 0 HOverrideArray STR# res ID, index # */
  628. hovrMissStringResEnd:
  629.                 case HMTEResItem:
  630. hovrMissTEResBeg:       integer = (hovrMissTEResEnd - hovrMissTEResBeg) / 8;
  631.                         key int = HMTEResItemID;
  632.                         integer;                /* use for missing HOverrideArray items */
  633. hovrMissTEResEnd:
  634.                 case HMSTRResItem:
  635. hovrMissSTRResBeg:      integer = (hovrMissSTRResEnd - hovrMissSTRResBeg) / 8;
  636.                         key int = HMSTRResItemID;
  637.                         integer;                /* use for missing HOverrideArray items */
  638. hovrMissSTRResEnd:
  639.                 case HMSkipItem:
  640. hovrMissSkipBeg:        integer = (hovrMissSkipEnd - hovrMissSkipBeg) / 8;
  641.                         key int = HMSkipItemID; /* use when there is no missing msg */
  642. hovrMissSkipEnd:                        
  643.             };
  644.             
  645.         array HOverrideArray {
  646.                 switch {
  647.                     case HMStringItem:
  648. hovrStringBeg:          integer = (hovrStringEnd[$$ArrayIndex(HOverrideArray)] - hovrStringBeg[$$ArrayIndex(HOverrideArray)]) / 8;
  649.                         key int = HMStringItemID;
  650.                         pstring;            /* message string  */
  651.                         align word;
  652. hovrStringEnd:                      
  653.                     case HMPictItem:
  654. hovrPictBeg:            integer = (hovrPictEnd[$$ArrayIndex(HOverrideArray)] - hovrPictBeg[$$ArrayIndex(HOverrideArray)]) / 8;
  655.                         key int = HMPictItemID;
  656.                         integer;            /* message pict ID  */
  657. hovrPictEnd:                                                
  658.                     case HMStringResItem:
  659. hovrStringResBeg:       integer = (hovrStringResEnd[$$ArrayIndex(HOverrideArray)] - hovrStringResBeg[$$ArrayIndex(HOverrideArray)]) / 8;
  660.                         key int = HMStringResItemID;
  661.                         integer; integer;   /* STR# res ID, index # */
  662. hovrStringResEnd:                       
  663.                     case HMTEResItem:
  664. hovrTEResBeg:           integer = (hovrTEResEnd[$$ArrayIndex(HOverrideArray)] - hovrTEResBeg[$$ArrayIndex(HOverrideArray)]) / 8;
  665.                         key int = HMTEResItemID;
  666.                         integer;            /* message TERes ID */
  667. hovrTEResEnd:                       
  668.                     case HMSTRResItem:
  669. hovrSTRResBeg:          integer = (hovrSTRResEnd[$$ArrayIndex(HOverrideArray)] - hovrSTRResBeg[$$ArrayIndex(HOverrideArray)]) / 8;
  670.                         key int = HMSTRResItemID;
  671.                         integer;            /* message STR ID */
  672. hovrSTRResEnd:                      
  673.                     case HMSkipItem:
  674. hovrSkipBeg:            integer = (hovrSkipEnd[$$ArrayIndex(HOverrideArray)] - hovrSkipBeg[$$ArrayIndex(HOverrideArray)]) / 8;
  675.                         key int = HMSkipItemID;
  676. hovrSkipEnd:                        
  677.                 };
  678.         };
  679. };
  680. æC 
  681.  
  682. æKY hfdr
  683. æFr BalloonTypes.r
  684. æT 
  685. æD 
  686. /*----------------------------hfdr • Help Mgr Finder Application Balloon Template-------------------------*/
  687. type 'hfdr' {
  688.         integer;                                    /* Help Version         */
  689.         longint;                                    /* Options              */
  690.         integer;                                    /* Balloon ProcID       */
  691.         integer;                                    /* Balloon Variant      */
  692.         integer = $$CountOf(HFdrArray);             /* Count of hfdr Msgs   */
  693.  
  694.         array HFdrArray {
  695.                 switch {
  696.                     case HMStringItem:
  697. hfdrStringBeg:          integer = (hfdrStringEnd[$$ArrayIndex(HFdrArray)] - hfdrStringBeg[$$ArrayIndex(HFdrArray)]) / 8;
  698.                         key int = HMStringItemID;   /* helpType         */
  699.                         pstring;                    /* STR255           */
  700.                         align word;                 /* keep aligned     */
  701. hfdrStringEnd:
  702.                     case HMPictItem:
  703. hfdrPictBeg:            integer = (hfdrPictEnd[$$ArrayIndex(HFdrArray)] - hfdrPictBeg[$$ArrayIndex(HFdrArray)]) / 8;
  704.                         key int = HMPictItemID;     /* helpType         */
  705.                         integer;                    /* Picture Res ID   */
  706. hfdrPictEnd:
  707.                     case HMStringResItem:
  708. hfdrStringResBeg:       integer = (hfdrStringResEnd[$$ArrayIndex(HFdrArray)] - hfdrStringResBeg[$$ArrayIndex(HFdrArray)]) / 8;
  709.                         key int = HMStringResItemID;/* helpType         */
  710.                         integer; integer;           /* STR# ID, index # */
  711. hfdrStringResEnd:
  712.                     case HMTEResItem:
  713. hfdrTEResBeg:           integer = (hfdrTEResEnd[$$ArrayIndex(HFdrArray)] - hfdrTEResBeg[$$ArrayIndex(HFdrArray)]) / 8;
  714.                         key int = HMTEResItemID;    /* helpType         */
  715.                         integer;                    /* TextEdit res ID  */
  716. hfdrTEResEnd:
  717.                     case HMSTRResItem:
  718. hfdrSTRResBeg:          integer = (hfdrSTRResEnd[$$ArrayIndex(HFdrArray)] - hfdrSTRResBeg[$$ArrayIndex(HFdrArray)]) / 8;
  719.                         key int = HMSTRResItemID;   /* helpType         */
  720.                         integer;                    /* STR res ID       */
  721. hfdrSTRResEnd:
  722.                     case HMSkipItem:
  723. hfdrSkipBeg:            integer = (hfdrSkipEnd[$$ArrayIndex(HFdrArray)] - hfdrSkipBeg[$$ArrayIndex(HFdrArray)]) / 8;
  724.                         key int = HMSkipItemID;     /* skip item (leave a hole) */
  725. hfdrSkipEnd:
  726.                 };
  727.         };
  728. };
  729.  
  730. #endif __BALLOONTYPES.R__
  731.  
  732.  
  733.  
  734. æKY Cmdo.r
  735. æKL 
  736. boldCmdo           
  737. BoxID                       
  738. CheckOptionID               
  739. cmdo
  740. CMDOVersion                 
  741. condenseCmdo       
  742. DoItButtonID               
  743. DummyID                    
  744. EditPopUpID                
  745. extendCmdo         
  746. FilesID                     
  747. italicCmdo          
  748. ListID                     
  749. MultiFilesID                
  750. MultiRegularEntryID         
  751. NestedDialogID              
  752. outlineCmdo         
  753. PictOrIconID               
  754. PopUpID                     
  755. RadioButtonsID              
  756. RedirectionID              
  757. RegularEntryID              
  758. shadowCmdo         
  759. TextBoxID                   
  760. TextTitleID                
  761. TriStateButtonsID          
  762. underlineCmdo       
  763. VersionDialogID            
  764.  
  765. æKY FilesID                     
  766. æFr Cmdo.r
  767. æT #define
  768. æD #define FilesID                      0
  769. æC 
  770.  
  771. æKY MultiFilesID                
  772. æFr Cmdo.r
  773. æT #define
  774. æD #define MultiFilesID                 1
  775. æC 
  776.  
  777. æKY CheckOptionID               
  778. æFr Cmdo.r
  779. æT #define
  780. æD #define CheckOptionID                2
  781. æC 
  782.  
  783. æKY RadioButtonsID              
  784. æFr Cmdo.r
  785. æT #define
  786. æD #define RadioButtonsID               3
  787. æC 
  788.  
  789. æKY RegularEntryID              
  790. æFr Cmdo.r
  791. æT #define
  792. æD #define RegularEntryID               4
  793. æC 
  794.  
  795. æKY MultiRegularEntryID         
  796. æFr Cmdo.r
  797. æT #define
  798. æD #define MultiRegularEntryID          5
  799. æC 
  800.  
  801. æKY BoxID                       
  802. æFr Cmdo.r
  803. æT #define
  804. æD #define BoxID                        6
  805. æC 
  806.  
  807. æKY TextBoxID                   
  808. æFr Cmdo.r
  809. æT #define
  810. æD #define TextBoxID                    7
  811. æC 
  812.  
  813. æKY PopUpID                     
  814. æFr Cmdo.r
  815. æT #define
  816. æD #define PopUpID                      8
  817. æC 
  818.  
  819. æKY NestedDialogID              
  820. æFr Cmdo.r
  821. æT #define
  822. æD #define NestedDialogID               9
  823. æC 
  824.  
  825. æKY TextTitleID                
  826. æFr Cmdo.r
  827. æT #define
  828. æD #define TextTitleID                 10
  829. æC 
  830.  
  831. æKY RedirectionID              
  832. æFr Cmdo.r
  833. æT #define
  834. æD #define RedirectionID               11
  835. æC 
  836.  
  837. æKY EditPopUpID                
  838. æFr Cmdo.r
  839. æT #define
  840. æD #define EditPopUpID                 12
  841. æC 
  842.  
  843. æKY TriStateButtonsID          
  844. æFr Cmdo.r
  845. æT #define
  846. æD #define TriStateButtonsID           13
  847. æC 
  848.  
  849. æKY ListID                     
  850. æFr Cmdo.r
  851. æT #define
  852. æD #define ListID                      14
  853. æC 
  854.  
  855. æKY PictOrIconID               
  856. æFr Cmdo.r
  857. æT #define
  858. æD #define PictOrIconID                15
  859. æC 
  860.  
  861. æKY DummyID                    
  862. æFr Cmdo.r
  863. æT #define
  864. æD #define DummyID                     16
  865. æC 
  866.  
  867. æKY DoItButtonID               
  868. æFr Cmdo.r
  869. æT #define
  870. æD #define DoItButtonID                17
  871. æC 
  872.  
  873. æKY VersionDialogID            
  874. æFr Cmdo.r
  875. æT #define
  876. æD #define VersionDialogID             18
  877. æC 
  878.  
  879. æKY CMDOVersion                 
  880. æFr Cmdo.r
  881. æT #define
  882. æD #define CMDOVersion                  8
  883. æC 
  884.  
  885. æKY boldCmdo           
  886. æFr Cmdo.r
  887. æT #define
  888. æD #define bold             1 
  889. æC 
  890.  
  891. æKY italicCmdo          
  892. æFr Cmdo.r
  893. æT #define
  894. æD #define italic           2 
  895. æC 
  896.  
  897. æKY underlineCmdo       
  898. æFr Cmdo.r
  899. æT #define
  900. æD #define underline        4 
  901. æC 
  902.  
  903. æKY outlineCmdo         
  904. æFr Cmdo.r
  905. æT #define
  906. æD #define outline          8 
  907. æC 
  908.  
  909. æKY shadowCmdo         
  910. æFr Cmdo.r
  911. æT #define
  912. æD #define shadow          16 
  913. æC 
  914.  
  915. æKY condenseCmdo       
  916. æFr Cmdo.r
  917. æT #define
  918. æD #define condense        32 
  919. æC 
  920.  
  921. æKY extendCmdo         
  922. æFr Cmdo.r
  923. æT #define
  924. æD #define extend          64 
  925. æC 
  926.  
  927. æKY cmdo
  928. æFr Cmdo.r
  929. æT 
  930. æD type 'cmdo' {
  931.   integer = CMDOVersion;                                    /* Version number */
  932.   integer = $$CountOf(dialogs);                             /* # of dialogs, at least 1 */
  933.   array dialogs {
  934.     integer;                                                /* height of the dialog */
  935.     cstring;                                                /* text displayed in help window */
  936.     align word;
  937.  
  938.     integer = $$CountOf(itemArray);                         /* # of items */
  939.     
  940.     /* The order in which Commando writes out the options is the same order in which the
  941.        items in this array are entered in your resource declaration.  This is important
  942.        for those commands which have position dependent parameters. */
  943.        
  944.     wide array itemArray {
  945.         switch {
  946.             case NotDependent:
  947.                 key int = 0;
  948.             
  949.             case Or:
  950.                 key byte = 1;
  951.                 byte = $$CountOf(OrArray);
  952.                 wide array OrArray {
  953.                     int;                                    /* item number dependent upon */
  954.                 };
  955.             
  956.             case And:
  957.                 key byte = 2;
  958.                 byte = $$CountOf(AndArray);
  959.                 wide array AndArray {
  960.                     int;                                    /* item number dependent upon */
  961.                 };
  962.         };
  963.         switch {
  964.             case Files:
  965.                 key byte = FilesID;
  966.                 byte    InputFile,                          /* These types require the  */
  967.                         InputFileOrDir,                     /* 'Additional' case below. */
  968.                         InputOrOutputFile,
  969.                         InputOrOutputOrDir,
  970.                         
  971.                         OutputFile,                         /* These types require the  */
  972.                         OutputFileOrDir,                    /* 'NoMore' case below.     */
  973.                         DirOnly;
  974.                 switch {
  975.                     case OptionalFile:
  976.                         /* Using this case makes a popup with two or three items.
  977.                            This first item is used to select a default file or to
  978.                            select no file.  The second (and third) item(s) are used
  979.                            to select input or output files. */
  980.                         key int = 0;
  981.                         rect;                               /* bounds of title */
  982.                         rect;                               /* bounds of display box */
  983.                         cstring;                            /* title */
  984.                         cstring;                            /* default file */
  985.                         cstring;                            /* option to return before file */
  986.                         cstring;                            /* If this item is dependent upon
  987.                                                                another Files item, an extension
  988.                                                                can be specified here to be added
  989.                                                                to the dependents file. */
  990.                         cstring;                            /* help text for popup */
  991.                         byte        dim, dontDim;           /* Normally, dependent items are
  992.                                                                dimmed if the parent is disabled,
  993.                                                                if this field is "dontDim", then
  994.                                                                this item won't be dimmed */
  995.                         /* These next three strings are the strings displayed in the popup.  Most
  996.                            of the file types have only two strings but InputOrOutputFile and 
  997.                            InputOrOutputOrDir require three strings.  If a string is set to "",
  998.                            Commando will use a built-in default. */
  999.                         cstring;                            /* popup item #1 */
  1000.                         cstring;                            /* popup item #2 */
  1001.                         cstring;                            /* popup item #3 */
  1002.                 
  1003.                     case RequiredFile:
  1004.                         /* Using this case makes a button that goes directly to standard
  1005.                            file.  Use this case when a file is required and the user doesn't
  1006.                            have the choice of a default file or no file. */
  1007.                         key int = 1;
  1008.                         rect;                               /* bounds of button */
  1009.                         cstring;                            /* title of button */
  1010.                         cstring;                            /* option to return before file */
  1011.                         cstring;                            /* help text for button */
  1012.                 };
  1013.                 
  1014.                 /* Some file types take additional information.  See the comment next to the
  1015.                    file types to find out which case to choose here. */
  1016.                 switch {
  1017.                     case Additional:
  1018.                         key byte = 0;
  1019.                         cstring;                                    /* For InputOrOutputFile, an option
  1020.                                                                        can be specified when a new
  1021.                                                                        (or output) file is chosen. */
  1022.                         cstring FilterTypes = ":";                  /* preferred file extension (i.e. ".c") 
  1023.                                                                        If null, no radio buttons will be
  1024.                                                                        displayed.  If FilterTypes is used,
  1025.                                                                        the radio buttons will toggle
  1026.                                                                        between showing files only with
  1027.                                                                        the types below and all files */
  1028.                         cstring;                                    /* title of only files button */
  1029.                         cstring;                                    /* title of all files button */
  1030.                         byte = $$CountOf(TypesArray);               /* up to 4 types may be specified */
  1031.                         align word;
  1032.                         array TypesArray {
  1033.                             literal longint     text = 'TEXT',      /* desired input file type, specify */
  1034.                                                 obj  = 'OBJ ',      /* no type for all types */
  1035.                                                 appl = 'APPL',
  1036.                                                 da   = 'DFIL',
  1037.                                                 tool = 'MPST';
  1038.                         };
  1039.  
  1040.                     case NoMore:
  1041.                         key byte = 1;
  1042.                 };
  1043.  
  1044.             case MultiFiles:
  1045.                 key byte = MultiFilesID;
  1046.                 cstring;                                    /* button title */
  1047.                 cstring;                                    /* help text for button */
  1048.                 align word;
  1049.                 rect;                                       /* bounds of button */
  1050.                 cstring;                                    /* message like " Source files to compile: " */
  1051.                 cstring;                                    /* option returned before each 
  1052.                                                                filename. Can be null */
  1053.                 switch {
  1054.                     case MultiInputFiles:
  1055.                         key byte = 0;
  1056.                         byte = $$CountOf(MultiTypesArray);          /* up to 4 types may be specified */
  1057.                         align word;
  1058.                         array MultiTypesArray {
  1059.                             literal longint     text = 'TEXT',      /* desired input file type, specify no type */
  1060.                                                 obj  = 'OBJ ',      /* for all types */
  1061.                                                 appl = 'APPL',
  1062.                                                 da   = 'DFIL',
  1063.                                                 tool = 'MPST';
  1064.                         };
  1065.                         cstring FilterTypes = ":";                  /* preferred file extension (i.e. ".c") 
  1066.                                                                        If null, no radio buttons will be
  1067.                                                                        displayed.  If FilterTypes is used,
  1068.                                                                        the radio buttons will toggle
  1069.                                                                        between showing files only with
  1070.                                                                        the types below and all files */
  1071.                         cstring;                                    /* title of only files button */
  1072.                         cstring;                                    /* title of all files button */
  1073.             
  1074.                     case MultiDirs:
  1075.                         key byte = 1;
  1076.  
  1077.                     case MultiInputFilesAndDirs:
  1078.                         key byte = 2;
  1079.  
  1080.                     case MultiOutputFiles:
  1081.                         key byte = 3;
  1082.                 };
  1083.  
  1084.             case CheckOption:
  1085.                 key byte = CheckOptionID;
  1086.                 byte    NotSet, Set;                        /* whether button is set or not */
  1087.                 rect;                                       /* bounds */
  1088.                 cstring;                                    /* title */
  1089.                 cstring;                                    /* option returned */
  1090.                 cstring;                                    /* help text for button */
  1091.             
  1092.             case RadioButtons:
  1093.                 key byte = RadioButtonsID;
  1094.                 byte = $$CountOf(radioArray);               /* # of buttons */
  1095.                 wide array radioArray {
  1096.                     rect;                                   /* bounds */
  1097.                     cstring;                                /* title */
  1098.                     cstring;                                /* option returned */
  1099.                     byte    NotSet, Set;                    /* whether button is set or not */
  1100.                     cstring;                                /* help text for button */
  1101.                     align word;
  1102.                 };
  1103.             
  1104.             case RegularEntry:
  1105.                 key byte = RegularEntryID;
  1106.                 cstring;                                    /* title */
  1107.                 align word;
  1108.                 rect;                                       /* bounds of title */
  1109.                 rect;                                       /* bounds of input box */
  1110.                 cstring;                                    /* default value */
  1111.                 byte        ignoreCase, keepCase;           /* the default value is never displayed
  1112.                                                                in the commando window.  If what the
  1113.                                                                user types in the textedit window
  1114.                                                                matches the default value, then that
  1115.                                                                value isn't displayed.  This flag
  1116.                                                                tells Commando whether to ignore case
  1117.                                                                when comparing the contents of the textedit
  1118.                                                                window with the default value. */
  1119.                 cstring;                                    /* option returned */
  1120.                 cstring;                                    /* help text for entry */
  1121.  
  1122.             case MultiRegularEntry: /* For scrollable, lists of an option */
  1123.                 key byte = MultiRegularEntryID;
  1124.                 cstring;                                    /* title */
  1125.                 align word;
  1126.                 rect;                                       /* bounds of title */
  1127.                 rect;                                       /* bounds of input list */
  1128.                 byte = $$CountOf(DefEntryList);
  1129.                 array DefEntryList {
  1130.                     cstring;                                /* default values */
  1131.                 };
  1132.                 cstring;                                    /* option returned. Each value
  1133.                                                                will be preceded with this
  1134.                                                                option */
  1135.                 cstring;                                    /* help text for entry */
  1136.  
  1137.             case Box:       /* Can be used to draw lines too */
  1138.                 key byte = BoxID;
  1139.                 byte            black, gray;                /* color of object */
  1140.                 rect;                                       /* bounds of box or line */
  1141.                 
  1142.             case TextBox:   /* Draws a box with title in upper-left */
  1143.                 key byte = TextBoxID;
  1144.                 byte            black, gray;                /* color of object */
  1145.                 rect;                                       /* bounds of box or line */
  1146.                 cstring;                                    /* title */
  1147.                 
  1148.             case TextTitle:
  1149.                 key byte = TextTitleID;
  1150.                 byte        plain;                          /* style of text */         
  1151.                 rect;                                       /* bounds of title */
  1152.                 int         systemFont;                     /* font number to use */
  1153.                 int         systemSize;                     /* font size to use */
  1154.                 cstring;                                    /* the text to display */
  1155.             
  1156.             case PopUp:
  1157.                 key byte = PopUpID;
  1158.                 byte        Window, Alias, Font, Set;       /* popup type */
  1159.                 rect;                                       /* bounds of title */
  1160.                 rect;                                       /* bounds of popup line */
  1161.                 cstring;                                    /* title */
  1162.                 cstring;                                    /* option returned */
  1163.                 cstring;                                    /* help text for popup */
  1164.                 byte        noDefault, hasDefault;          /* hasDefault if first item is "Default Value" */
  1165.  
  1166.             case EditPopUp:
  1167.                 key byte = EditPopUpID;
  1168.                 /* For MenuItem, this EditPopUp must be dependent upon another EditPopUp
  1169.                    of the MenuTitle type so that the control knows whose menu items to
  1170.                    display.
  1171.                    
  1172.                    For FontSize, this EditPopUp must be dependent upon a PopUp of the
  1173.                    Font type so that the control knows what sizes of the font exist. */
  1174.                    
  1175.                 byte    MenuTitle, MenuItem,                /* Type of editable pop-up */
  1176.                         FontSize, Alias, Set;
  1177.                 rect;                                       /* bounds of title */
  1178.                 rect;                                       /* bounds of text edit area */
  1179.                 cstring;                                    /* title */
  1180.                 cstring;                                    /* option to return */
  1181.                 cstring;                                    /* help text for textedit part */
  1182.                 cstring;                                    /* help text for popup part */
  1183.                 
  1184.             case NestedDialog:
  1185.                 key byte = NestedDialogID;
  1186.                 byte;                                       /* the number of the dialog
  1187.                                                                to call.  It must be greater
  1188.                                                                than the current dialog */
  1189.                 rect;                                       /* bounds of button */
  1190.                 cstring;                                    /* button's title */
  1191.                 cstring;                                    /* help text for button */
  1192.             
  1193.             case Redirection:
  1194.                 key byte = RedirectionID;
  1195.                 byte    StandardOutput, DiagnosticOutput,   /* the type of redirection */
  1196.                         StandardInput;
  1197.                 point;                                      /* upper-left point of the whole contraption */
  1198.  
  1199.             case TriStateButtons:
  1200.                 key byte = TriStateButtonsID;
  1201.                 byte = $$CountOf(threeStateArray);          /* # of buttons */
  1202.                 cstring;                                    /* option returned */
  1203.                 wide array threeStateArray {
  1204.                     align word;
  1205.                     rect;                                   /* bounds */
  1206.                     cstring;                                /* title */
  1207.                     cstring;                                /* string for Clear state */
  1208.                     cstring;                                /* string for DontTouch state */
  1209.                     cstring;                                /* string for Set state */
  1210.                     cstring;                                /* help text for button */
  1211.                 };
  1212.  
  1213.             case List:      /* Puts up a list of "things" and allows multiple selections */
  1214.                 key byte = ListID;
  1215.                 byte        Volumes, ShellVars,
  1216.                             Windows, Aliases;               /* what to display in the list */
  1217.                 cstring;                                    /* option to return before each "thing" */
  1218.                 cstring;                                    /* title */
  1219.                 align word;
  1220.                 rect;                                       /* bounds of title */
  1221.                 rect;                                       /* bounds of list selection box */
  1222.                 cstring;                                    /* help text for selection box */
  1223.  
  1224.             case PictOrIcon:
  1225.                 key byte = PictOrIconID;
  1226.                 byte    Icon, Picture;                      /* display a picture or icon */
  1227.                 int;                                        /* resource id of icon/picture */
  1228.                 rect;                                       /* display bounds */
  1229.  
  1230.             case Dummy:
  1231.                 key byte = DummyID;
  1232.  
  1233.             case DoItButton:                                /* Allows the 'do it' button to be dependent */
  1234.                 key byte = DoItButtonID;
  1235.  
  1236.             case VersionDialog:                             /* Display a dialog when the version # is clicked */
  1237.                 key byte = VersionDialogID;
  1238.                 switch {
  1239.                     case VersionString:                     /* Version string embedded right here */
  1240.                         key byte = 0;
  1241.                         cstring;                            /* Version string of tool (e.g. V2.0) */
  1242.                     
  1243.                     case VersionResource:                   /* Versions string comes from another resource */
  1244.                         key byte = 1;
  1245.                         literal longint;                    /* resource type of pascal string containing version string */
  1246.                         integer;                            /* resource id of version string */
  1247.                 };
  1248.                 cstring;                                    /* Version text for help window */
  1249.                 align word;
  1250.                 integer     noDialog;                       /* Rsrc id of 'DLOG' */
  1251.                     /* NOTE •1: if there is no modal dialog to display when the version
  1252.                        string is clicked, set the rsrc id to zero (noDialog).
  1253.  
  1254.                        NOTE •2: if the version string comes from another resource (VersionResource),
  1255.                        the string must be the first thing in the resource and the string must be 
  1256.                        a pascal-style string.  A 'STR ' resource is an example of a resource that
  1257.                        fits the bill.
  1258.                        
  1259.                        NOTE •3: if the modal dialog is to have a filter proc, the proc
  1260.                        must be linked as a 'fltr' resource with the same resource id
  1261.                        as the dialog. */
  1262.         };
  1263.         align word;
  1264.     };
  1265.     align word;
  1266.   };
  1267. };
  1268.  
  1269. #endif __CMDO.R__
  1270.  
  1271.  
  1272.  
  1273. æKY CTBTypes.r
  1274. æKL 
  1275. cbnd
  1276. fbnd
  1277. flst
  1278. tbnd
  1279.  
  1280. æKY cbnd
  1281. æFr CTBTypes.r
  1282. æT 
  1283. æD type 'cbnd' {
  1284.         integer = $$CountOf(TypeArray) - 1;
  1285.         array TypeArray {
  1286.                 literal longint;                                /* Type                 */
  1287.                 integer = $$CountOf(IDArray) - 1;
  1288.                 wide array IDArray {
  1289.                         integer;                                /* Local ID             */
  1290.                         integer;                                /* Actual ID            */
  1291.                 };
  1292.         };
  1293. };
  1294. æC 
  1295.  
  1296. æKY flst
  1297. æFr CTBTypes.r
  1298. æT 
  1299. æD 
  1300. /*----------------------------flst • Font Family List----------------------------*/
  1301. type 'flst' {
  1302.         integer = $$CountOf(Fonts);                             /* # of fonts           */
  1303.         array Fonts {
  1304.             pstring;                                            /*      Font NAME           */
  1305.             align word;
  1306.             unsigned hex integer    plain;                      /*      Font Style      */
  1307.             integer;                                            /*      Font Size       */
  1308.             integer;                                            /*      Font Mode       */
  1309.         };
  1310. };
  1311. æC 
  1312.  
  1313. æKY fbnd
  1314. æFr CTBTypes.r
  1315. æT 
  1316. æD 
  1317. type 'fbnd' as 'cbnd';
  1318. æC 
  1319.  
  1320. æKY tbnd
  1321. æFr CTBTypes.r
  1322. æT 
  1323. æD 
  1324. type 'tbnd' as 'cbnd';
  1325.  
  1326.  
  1327.  
  1328.  
  1329. æKY InstallerTypes.r
  1330. æKL 
  1331. actionAtomFlags 
  1332. addAssertionKey                        
  1333. addAuditRecKey                         
  1334. addPackagesKey                         
  1335. addUserDescriptionKey                  
  1336. alwaysFalseKey                         
  1337. alwaysTrueKey                          
  1338. assertionList
  1339. bootBlockAtomFlags
  1340. BootBlockUpdateFlags
  1341. checkAllAssertionsKey                  
  1342. checkAnyAssertionKey                   
  1343. checkAnyAuditRecKey                    
  1344. checkAuditRecKey                       
  1345. checkFileContainsRsrcByIDKey            
  1346. checkFileContainsRsrcByNameKey          
  1347. checkFileCountryCodeKey                 
  1348. checkFileDataForkExistsKey              
  1349. checkFileRsrcForkExistsKey              
  1350. checkFileVersionKey                     
  1351. checkGestaltKey                         
  1352. checkMinMemoryKey                       
  1353. checkMoreThanOneAssertionKey           
  1354. checkTgtVolSizeKey                      
  1355. checkUserFunctionKey                   
  1356. delInstall      
  1357. delRemove       
  1358. evenIf              
  1359. evenPaddedString
  1360. fileAtomFlags
  1361. fileSpecFlags
  1362. fileSpecID 
  1363. gestaltList
  1364. icmt
  1365. inaa
  1366. inat
  1367. inbb
  1368. indo
  1369. infa      
  1370. infr
  1371. infs
  1372. inpk
  1373. inra
  1374. inrl
  1375. IntegerList
  1376. invs
  1377. LongIntList
  1378. noByID              
  1379. noCopy          
  1380. noDelInstall    
  1381. noDelRemove     
  1382. noEvenIf            
  1383. noKeepExisting      
  1384. noLeaveAloneIfNewer 
  1385. notChangeOnInstall  
  1386. notChangeOnRemove   
  1387. notNameMustMatch    
  1388. notShowsOnCustom    
  1389. noTypeCrMustMatch   
  1390. noUpdateOnly        
  1391. opcodeFlags
  1392. OSType
  1393. packageFlags
  1394. packageList
  1395. partSpec
  1396. region
  1397. reportSysErrorKey                      
  1398. reportVolErrorKey                      
  1399. resourceAtomFlags
  1400. rsrcID
  1401. RsrcName
  1402. rsrcType
  1403. RuleList 
  1404. TargetVolReqs
  1405. updateOnly          
  1406. Version
  1407.  
  1408. æKY region
  1409. æFr InstallerTypes.r
  1410. æT #define
  1411. æD #include "SysTypes.r"                                   /* For region codes */
  1412.  
  1413. /* For those using pre-7.0 "SysTypes.r" we need to define region.  It used */
  1414. /* to be country, but became region in 7.0 */
  1415.  
  1416. #ifndef region
  1417. #define region country
  1418. #endif
  1419. æC 
  1420.  
  1421. æKY evenPaddedString
  1422. æFr InstallerTypes.r
  1423. æT #define
  1424. æD #define evenPaddedString                                                                                          
  1425.     pstring;                                                                                                      
  1426.     align word
  1427. æC 
  1428.  
  1429. æKY OSType
  1430. æFr InstallerTypes.r
  1431. æT #define
  1432. æD #define OSType                                                                                                    
  1433.     literal longint
  1434. æC 
  1435.  
  1436. æKY rsrcType
  1437. æFr InstallerTypes.r
  1438. æT #define
  1439. æD #define rsrcType                                                                                                  
  1440.     OSType                                              /* type of a rsrc which must exist in system */           
  1441.         patchrsrcType = 'PTCH',                                                                                   
  1442.         userFunctionType = 'infn',                                                                                
  1443.         auditrsrcType = 'audt'
  1444. æC 
  1445.  
  1446. æKY rsrcID
  1447. æFr InstallerTypes.r
  1448. æT #define
  1449. æD #define rsrcID                                                                                                    
  1450.     integer                                             /* ID of a rsrc which must exist in system */             
  1451.         macPlusPatch = 117,                                                                                       
  1452.         macSEPatch = 630,                                                                                         
  1453.         macIIPatch = 376,                                                                                         
  1454.         portablePatch = 890,                                                                                      
  1455.         macIIciPatch = 1660,                                                                                      
  1456.         oldAuroraPatch = 1657
  1457. æC 
  1458.  
  1459. æKY RsrcName
  1460. æFr InstallerTypes.r
  1461. æT #define
  1462. æD #define RsrcName                                                                                                  
  1463.     evenPaddedString
  1464. æC 
  1465.  
  1466. æKY packageFlags
  1467. æFr InstallerTypes.r
  1468. æT #define
  1469. æD #define packageFlags                                                                                              
  1470.         boolean     doesntShowOnCustom, showsOnCustom;      /* should show up on Custom screen   */               
  1471.         boolean     notRemovable, removable;                /* this package can be removed   */                   
  1472.         boolean     forceRestart, dontForceRestart;         /* should installing this package for a restart? */   
  1473.         fill bit[13]                                        /* Reserved */ 
  1474. æC 
  1475.  
  1476. æKY notShowsOnCustom    
  1477. æFr InstallerTypes.r
  1478. æT #define
  1479. æD #define notShowsOnCustom     doesntShowOnCustom               /* Old wording */
  1480. æC 
  1481.  
  1482. æKY partSpec
  1483. æFr InstallerTypes.r
  1484. æT #define
  1485. æD #define partSpec                                                                                                  
  1486.         rsrcType;                                           /* Part Type: inpk, infa, inra… */                
  1487.         rsrcID                                              /* Part ID */
  1488. æC 
  1489.  
  1490. æKY inpk
  1491. æFr InstallerTypes.r
  1492. æT 
  1493. æD 
  1494. type 'inpk' {
  1495.         switch {
  1496.             case format0:
  1497.                 key integer = 0;                            /* Package Format version */
  1498.                 packageFlags;                               /* Package Flags */
  1499.                 unsigned integer;                           /* icmt ID */
  1500.                 unsigned longint;                           /* Package Size */
  1501.                 evenPaddedString;                           /* Package Name */
  1502.                 unsigned integer = $$CountOf(partsList);    /* Parts List */
  1503.                 wide array partsList {
  1504.                     partSpec;                               /* Parts Spec */
  1505.                 };
  1506.     
  1507.         };
  1508. };
  1509. æC 
  1510.  
  1511. æKY icmt
  1512. æFr InstallerTypes.r
  1513. æT 
  1514. æD 
  1515. type 'icmt' {                                               /* Installer comment */
  1516.         unsigned hex longint;                               /* Creation Date  */
  1517.         unsigned hex longint;                               /* Version */
  1518.         rsrcID;                                             /* Icon ID */
  1519.         evenPaddedString;                                   /* Comment Text */
  1520. };
  1521. æC 
  1522.  
  1523. æKY fileSpecID 
  1524. æFr InstallerTypes.r
  1525. æT #define
  1526. æD #define fileSpecID                                                                                                
  1527.         rsrcID
  1528. æC 
  1529.  
  1530. æKY fileSpecFlags
  1531. æFr InstallerTypes.r
  1532. æT #define
  1533. æD #define fileSpecFlags                                                                                             
  1534.         boolean     noSearchForFile, SearchForFile;         /* Search (tgt only) if not found in given path*/     
  1535.         boolean     TypeCrNeedNotMatch, TypeCrMustMatch;    /* Type and creator must match  */                    
  1536.         fill bit[14]                                        /* currently unused */
  1537. æC 
  1538.  
  1539. æKY noTypeCrMustMatch   
  1540. æFr InstallerTypes.r
  1541. æT #define
  1542. æD #define noTypeCrMustMatch    TypeCrNeedNotMatch
  1543. æC 
  1544.  
  1545. æKY infs
  1546. æFr InstallerTypes.r
  1547. æT 
  1548. æD 
  1549. type    'infs' {                                                        
  1550.         literal longint;                                    /* File Type    */
  1551.         literal longint;                                    /* File Creator */
  1552.         unsigned hex longint;                               /* Creation Date*/ 
  1553.         fileSpecFlags;                                      /* File Spec Flags */
  1554.         evenPaddedString;                                   /* Full Path */
  1555. };
  1556. æC 
  1557.  
  1558. æKY opcodeFlags
  1559. æFr InstallerTypes.r
  1560. æT #define
  1561. æD #define opcodeFlags                                                                                               
  1562.         boolean     dontDeleteWhenRemoving, deleteWhenRemoving;         /* Remove file or rsrc if remove clicked */   
  1563.         boolean     dontDeleteWhenInstalling, deleteWhenInstalling;     /* Delete target before copy    */            
  1564.         boolean     dontCopy, copy;                         /* Copy file or rsrc to destination */                
  1565.         fill bit[3]                                         /* Reserved */
  1566. æC 
  1567.  
  1568. æKY delRemove       
  1569. æFr InstallerTypes.r
  1570. æT #define
  1571. æD #define delRemove        deleteWhenRemoving
  1572. æC 
  1573.  
  1574. æKY noDelRemove     
  1575. æFr InstallerTypes.r
  1576. æT #define
  1577. æD #define noDelRemove      dontDeleteWhenRemoving
  1578. æC 
  1579.  
  1580. æKY delInstall      
  1581. æFr InstallerTypes.r
  1582. æT #define
  1583. æD #define delInstall       deleteWhenInstalling
  1584. æC 
  1585.  
  1586. æKY noDelInstall    
  1587. æFr InstallerTypes.r
  1588. æT #define
  1589. æD #define noDelInstall     dontDeleteWhenInstalling
  1590. æC 
  1591.  
  1592. æKY noCopy          
  1593. æFr InstallerTypes.r
  1594. æT #define
  1595. æD #define noCopy           dontCopy
  1596. æC 
  1597.  
  1598. æKY fileAtomFlags
  1599. æFr InstallerTypes.r
  1600. æT #define
  1601. æD #define fileAtomFlags                                                                                             
  1602.         opcodeFlags;                                                                                              
  1603.         fill bit[5];                                                                                              
  1604.         boolean     updateEvenIfNewer, leaveAloneIfNewer;   /* OK for a newer version of this file to exist */    
  1605.         boolean     updateExisting, keepExisting;           /* Keep tgt file if it already exists */              
  1606.         boolean     copyIfNewOrUpdate, copyIfUpdate;        /* Only update if target exists */                    
  1607.         boolean     noRsrcFork, rsrcFork;                   /* Apply operation to rsrc fork */                    
  1608.         boolean     noDataFork, dataFork                    /* Apply operation to data fork */
  1609. æC 
  1610.  
  1611. æKY noLeaveAloneIfNewer 
  1612. æFr InstallerTypes.r
  1613. æT #define
  1614. æD #define noLeaveAloneIfNewer  updateEvenIfNewer
  1615. æC 
  1616.  
  1617. æKY noKeepExisting      
  1618. æFr InstallerTypes.r
  1619. æT #define
  1620. æD #define noKeepExisting       updateExisting
  1621. æC 
  1622.  
  1623. æKY noUpdateOnly        
  1624. æFr InstallerTypes.r
  1625. æT #define
  1626. æD #define noUpdateOnly         copyIfNewOrUpdate
  1627. æC 
  1628.  
  1629. æKY updateOnly          
  1630. æFr InstallerTypes.r
  1631. æT #define
  1632. æD #define updateOnly           copyIfUpdate
  1633. æC 
  1634.  
  1635. æKY infa      
  1636. æFr InstallerTypes.r
  1637. æT 
  1638. æD 
  1639. type 'infa' {
  1640.         switch {
  1641.             case format0:
  1642.                 key integer = 0;                            /* File Atom Format version */
  1643.                 fileAtomFlags;                              /* File Atom Flags        */
  1644.                 rsrcID;                                     /* tgt file spec ID */
  1645.                 rsrcID;                                     /* src file spec ID */
  1646.                 unsigned longInt;                           /* File Size     */
  1647.                 evenPaddedString;                           /* Atom Description     */
  1648.         };
  1649. };
  1650. æC 
  1651.  
  1652. æKY resourceAtomFlags
  1653. æFr InstallerTypes.r
  1654. æT #define
  1655. æD #define resourceAtomFlags                                                                                         
  1656.         opcodeFlags;                                                                                              
  1657.         fill bit[3];                                        /* Reserved */                                        
  1658.         boolean     noTgtRequired, tgtRequired;             /* target req or can be created by another inra */    
  1659.         boolean     updateExisting, keepExisting;           /* Keep tgt rsrc if it already exists */              
  1660.         boolean     copyIfNewOrUpdate, copyIfUpdate;        /* Only update if target exists */                    
  1661.         boolean     dontIgnoreProtection, ignoreProtection; /* Do it even if rsrc protected */                    
  1662.         boolean     srcNeedExist, srcNeedNotExist;          /* Rsrc need not exist on source */                   
  1663.         boolean     byName, byID;                           /* Use name or id to find rsrc  */                    
  1664.         boolean     nameNeedNotMatch, nameMustMatch         /* name must match*/
  1665. æC 
  1666.  
  1667. æKY evenIf              
  1668. æFr InstallerTypes.r
  1669. æT #define
  1670. æD #define evenIf               ignoreProtection
  1671. æC 
  1672.  
  1673. æKY noEvenIf            
  1674. æFr InstallerTypes.r
  1675. æT #define
  1676. æD #define noEvenIf             dontIgnoreProtection
  1677. æC 
  1678.  
  1679. æKY noByID              
  1680. æFr InstallerTypes.r
  1681. æT #define
  1682. æD #define noByID               byName
  1683. æC 
  1684.  
  1685. æKY notNameMustMatch    
  1686. æFr InstallerTypes.r
  1687. æT #define
  1688. æD #define notNameMustMatch     nameNeedNotMatch
  1689. æC 
  1690.  
  1691. æKY inra
  1692. æFr InstallerTypes.r
  1693. æT 
  1694. æD 
  1695. type 'inra' {
  1696.         switch {
  1697.             case format0:
  1698.                 key integer = 0;                            /* Resource Atom Format version */
  1699.                 resourceAtomFlags;                          /* Resource Atom Flags */
  1700.                 rsrcID;                                     /* tgt file spec ID */
  1701.                 rsrcID;                                     /* src file spec ID */
  1702.                 rsrcType;                                   /* Resource Type */
  1703.                 integer;                                    /* Source ID */
  1704.                 integer;                                    /* Target ID */
  1705.                 unsigned longInt;                           /* Resource Size */
  1706.                 evenPaddedString;                           /* Atom Description */
  1707.                 evenPaddedString;                           /* Resource Name */
  1708.         };
  1709. };
  1710. æC 
  1711.  
  1712. æKY bootBlockAtomFlags
  1713. æFr InstallerTypes.r
  1714. æT #define
  1715. æD #define bootBlockAtomFlags                                                                                        
  1716.         fill bit[14];                                                                                             
  1717.         boolean     dontChangeOnInstall, changeOnInstall;   /* change parameter if we're installing */            
  1718.         boolean     dontChangeOnRemove, changeOnRemove      /* change parameter if we're removing */ 
  1719. æC 
  1720.  
  1721. æKY notChangeOnInstall  
  1722. æFr InstallerTypes.r
  1723. æT #define
  1724. æD #define notChangeOnInstall   dontChangeOnInstall
  1725. æC 
  1726.  
  1727. æKY notChangeOnRemove   
  1728. æFr InstallerTypes.r
  1729. æT #define
  1730. æD #define notChangeOnRemove    dontChangeOnRemove
  1731. æC 
  1732.  
  1733. æKY BootBlockUpdateFlags
  1734. æFr InstallerTypes.r
  1735. æT #define
  1736. æD #define BootBlockUpdateFlags                                                                                      
  1737.         fill bit[7];                                                                                              
  1738.         boolean     replaceBBSysName,                                                                             
  1739.                     saveBBSysName;                                                                                
  1740.         boolean     replaceBBShellName,                                                                           
  1741.                     saveBBShellName;                                                                              
  1742.         boolean     replaceBBDbg1Name,                                                                            
  1743.                     saveBBDbg1Name;                                                                               
  1744.         boolean     replaceBBDbg2Name,                                                                            
  1745.                     saveBBDbg2Name;                                                                               
  1746.         boolean     replaceBBScreenName,                                                                          
  1747.                     saveBBScreenName;                                                                             
  1748.         boolean     replaceBBHelloName,                                                                           
  1749.                     saveBBHelloName;                                                                              
  1750.         boolean     replaceBBScrapName,                                                                           
  1751.                     saveBBScrapName;                                                                              
  1752.         boolean     replaceBBCntFCBs,                                                                             
  1753.                     maxBBCntFCBs;                                                                                 
  1754.         boolean     replaceBBCntEvts,                                                                             
  1755.                     maxBBCntEvts
  1756.  
  1757.  
  1758. æC 
  1759.  
  1760. æKY inbb
  1761. æFr InstallerTypes.r
  1762. æT 
  1763. æD 
  1764.  
  1765. type 'inbb' {
  1766.         switch {
  1767.             case format0:
  1768.                 key integer = 0;                            /* Boot Block Format version */
  1769.                 bootBlockAtomFlags;                         /* Boot Block Atom Flags      */
  1770.                         
  1771.                         /* now case off the type for the boot block value */
  1772.                 switch {
  1773.                     case bbUpdate:
  1774.                         key integer = -1;
  1775.                         rsrcID;                             /* The file spec ID for the source of the 'boot' resource */
  1776.                         bootBlockUpdateFlags;
  1777.                         
  1778.                     case bbID:
  1779.                         key integer = 1;
  1780.                         decimal integer;
  1781.                     
  1782.                     case bbEntry:
  1783.                         key integer = 2;
  1784.                         decimal longint;
  1785.                         
  1786.                     case bbVersion:
  1787.                         key integer = 3;
  1788.                         decimal integer;
  1789.                         
  1790.                     case bbPageFlags:
  1791.                         key integer = 4;
  1792.                         decimal integer;
  1793.                         
  1794.                     case bbSysName:
  1795.                         key integer = 5;
  1796.                         evenPaddedString;
  1797.                         
  1798.                     case bbShellName:
  1799.                         key integer = 6;
  1800.                         evenPaddedString;
  1801.                         
  1802.                     case bbDbg1Name:
  1803.                         key integer = 7;
  1804.                         evenPaddedString;
  1805.                         
  1806.                     case bbDbg2Name:
  1807.                         key integer = 8;
  1808.                         evenPaddedString;
  1809.                         
  1810.                     case bbScreenName:
  1811.                         key integer = 9;
  1812.                         evenPaddedString;
  1813.                         
  1814.                     case bbHelloName:
  1815.                         key integer = 10;
  1816.                         evenPaddedString;
  1817.                         
  1818.                     case bbScrapName:
  1819.                         key integer = 11;
  1820.                         evenPaddedString;
  1821.                         
  1822.                     case bbCntFCBs:
  1823.                         key integer = 12;
  1824.                         decimal integer;
  1825.                         
  1826.                     case bbCntEvts:
  1827.                         key integer = 13;
  1828.                         decimal integer;
  1829.                         
  1830.                     case bb128KSHeap:
  1831.                         key integer = 14;
  1832.                         decimal longint;
  1833.                         
  1834.                     case bb256KSHeap:
  1835.                         key integer = 15;
  1836.                         decimal longint;
  1837.                         
  1838.                     case bb512KSHeap:
  1839.                         key integer = 16;
  1840.                         decimal longint;
  1841.                         
  1842.                     case bbSysHeapSize:                     /* Note - same as 512 */
  1843.                         key integer = 16;
  1844.                         decimal longint;
  1845.                         
  1846.                     case bbSysHeapExtra:
  1847.                         key integer = 18;
  1848.                         decimal longint;
  1849.                         
  1850.                     case bbSysHeapFract:
  1851.                         key integer = 19;
  1852.                         decimal longint;
  1853.                 };
  1854.                 evenPaddedString;                               /* Boot Block Atom Description */
  1855.         };
  1856. };
  1857.  
  1858. æC 
  1859.  
  1860. æKY actionAtomFlags 
  1861. æFr InstallerTypes.r
  1862. æT #define
  1863. æD #define actionAtomFlags                                                                               
  1864.         fill bit[13];                                                                                 
  1865.         boolean     actAfter,                   /* Call this proc after all installations */          
  1866.                     actBefore;                  /* Call this proc before all installations */         
  1867.         boolean     dontActOnRemove,                                                                  
  1868.                     actOnRemove;                /* Call this proc when doing a remove */              
  1869.         boolean     dontActOnInstall,                                                                 
  1870.                     actOnInstall                /* Call this proc when doing an Install */
  1871. æC 
  1872.  
  1873. æKY inaa
  1874. æFr InstallerTypes.r
  1875. æT 
  1876. æD 
  1877. type 'inaa' {
  1878.         switch {
  1879.             case format0:
  1880.                 key integer = 0;                            /* Action Atom Format version */
  1881.                 actionAtomFlags;                            /* Action Atom Flags          */
  1882.                 partSpec;                                   /* Resource type & id for executable resource */
  1883.                 longint;                                    /* RefCon that's passed to the executable resource */
  1884.                 evenPaddedString;                           /* Atom Description     */
  1885.         };
  1886. };
  1887.  
  1888. æC 
  1889.  
  1890. æKY inat
  1891. æFr InstallerTypes.r
  1892. æT 
  1893. æD /*
  1894. § --------------------------------- Audit Trail Atoms ---------------------------------*/
  1895. type 'inat' {
  1896.         switch {
  1897.             case format0:
  1898.                 key integer = 0;                            /* Version */
  1899.                 fileSpecID;                                 /* Target File Spec */
  1900.                 OSType;                                     /* Selector */
  1901.                 literal longint;                            /* Value */
  1902.             };
  1903. };
  1904.  
  1905. æC 
  1906.  
  1907. æKY Version
  1908. æFr InstallerTypes.r
  1909. æT #define
  1910. æD #define Version                                                                                                 
  1911.     hex byte;                                               /* System file Major revision in BCD*/              
  1912.     hex byte;                                               /* System file Minor revision in BCD*/              
  1913.     hex byte    development = 0x20,                         /* System file Release stage        */             
  1914.                 alpha = 0x40, beta = 0x60,                                                                      
  1915.                 final = 0x80, release = 0x80;                                                                   
  1916.     hex byte                                                /* Non Final */
  1917. æC 
  1918.  
  1919. æKY TargetVolReqs
  1920. æFr InstallerTypes.r
  1921. æT #define
  1922. æD #define TargetVolReqs                                       /* Required Target Volume Description */            
  1923.     decimal longint                                         /* Minimal Target Disk Size */                      
  1924.         floppy = 0,                                                                                             
  1925.         hdFloppy = 1400,                                                                                        
  1926.         hardDisk = 10000;                                                                                       
  1927.     decimal longint                                         /* Maximal Target Disk Size */                      
  1928.         floppy = 900,                                                                                          
  1929.         hdFloppy = 1500,                                                                                        
  1930.         hardDisk = 0
  1931. æC 
  1932.  
  1933. æKY IntegerList
  1934. æFr InstallerTypes.r
  1935. æT #define
  1936. æD #define IntegerList                                                                                             
  1937.     unsigned integer = $$CountOf(IntegerArray);                                                                
  1938.     array IntegerArray {                                                                                        
  1939.         integer;                                                                                                
  1940.     }
  1941.  
  1942. æC 
  1943.  
  1944. æKY LongIntList
  1945. æFr InstallerTypes.r
  1946. æT #define
  1947. æD #define LongIntList                                                                                             
  1948.     unsigned integer = $$CountOf(LongIntArray);                                                                 
  1949.     array LongIntArray {                                                                                       
  1950.         longint;                                                                                                
  1951.     }
  1952. æC 
  1953.  
  1954. æKY packageList
  1955. æFr InstallerTypes.r
  1956. æT #define
  1957. æD #define packageList                                                                                             
  1958.     IntegerList
  1959.  
  1960. æC 
  1961.  
  1962. æKY assertionList
  1963. æFr InstallerTypes.r
  1964. æT #define
  1965. æD #define assertionList                                                                                           
  1966.     IntegerList
  1967.  
  1968. æC 
  1969.  
  1970. æKY gestaltList
  1971. æFr InstallerTypes.r
  1972. æT #define
  1973. æD #define gestaltList                                                                                             
  1974.     LongIntList
  1975.  
  1976. æC 
  1977.  
  1978. æKY alwaysFalseKey                         
  1979. æFr InstallerTypes.r
  1980. æT #define
  1981. æD #define alwaysFalseKey                          -2
  1982. æC 
  1983.  
  1984. æKY alwaysTrueKey                          
  1985. æFr InstallerTypes.r
  1986. æT #define
  1987. æD #define alwaysTrueKey                           -1
  1988. æC 
  1989.  
  1990. æKY checkGestaltKey                         
  1991. æFr InstallerTypes.r
  1992. æT #define
  1993. æD #define checkGestaltKey                          1
  1994. æC 
  1995.  
  1996. æKY checkMinMemoryKey                       
  1997. æFr InstallerTypes.r
  1998. æT #define
  1999. æD #define checkMinMemoryKey                        2
  2000. æC 
  2001.  
  2002. æKY checkFileDataForkExistsKey              
  2003. æFr InstallerTypes.r
  2004. æT #define
  2005. æD #define checkFileDataForkExistsKey               3
  2006. æC 
  2007.  
  2008. æKY checkFileRsrcForkExistsKey              
  2009. æFr InstallerTypes.r
  2010. æT #define
  2011. æD #define checkFileRsrcForkExistsKey               4
  2012. æC 
  2013.  
  2014. æKY checkFileContainsRsrcByIDKey            
  2015. æFr InstallerTypes.r
  2016. æT #define
  2017. æD #define checkFileContainsRsrcByIDKey             5
  2018. æC 
  2019.  
  2020. æKY checkFileContainsRsrcByNameKey          
  2021. æFr InstallerTypes.r
  2022. æT #define
  2023. æD #define checkFileContainsRsrcByNameKey           6
  2024. æC 
  2025.  
  2026. æKY checkFileVersionKey                     
  2027. æFr InstallerTypes.r
  2028. æT #define
  2029. æD #define checkFileVersionKey                      7
  2030. æC 
  2031.  
  2032. æKY checkFileCountryCodeKey                 
  2033. æFr InstallerTypes.r
  2034. æT #define
  2035. æD #define checkFileCountryCodeKey                  8
  2036. æC 
  2037.  
  2038. æKY checkTgtVolSizeKey                      
  2039. æFr InstallerTypes.r
  2040. æT #define
  2041. æD #define checkTgtVolSizeKey                       9
  2042. æC 
  2043.  
  2044. æKY checkUserFunctionKey                   
  2045. æFr InstallerTypes.r
  2046. æT #define
  2047. æD #define checkUserFunctionKey                    10
  2048. æC 
  2049.  
  2050. æKY checkAllAssertionsKey                  
  2051. æFr InstallerTypes.r
  2052. æT #define
  2053. æD #define checkAllAssertionsKey                   11
  2054. æC 
  2055.  
  2056. æKY checkAnyAssertionKey                   
  2057. æFr InstallerTypes.r
  2058. æT #define
  2059. æD #define checkAnyAssertionKey                    12
  2060. æC 
  2061.  
  2062. æKY checkMoreThanOneAssertionKey           
  2063. æFr InstallerTypes.r
  2064. æT #define
  2065. æD #define checkMoreThanOneAssertionKey            13
  2066. æC 
  2067.  
  2068. æKY addUserDescriptionKey                  
  2069. æFr InstallerTypes.r
  2070. æT #define
  2071. æD #define addUserDescriptionKey                   14
  2072. æC 
  2073.  
  2074. æKY addPackagesKey                         
  2075. æFr InstallerTypes.r
  2076. æT #define
  2077. æD #define addPackagesKey                          15
  2078. æC 
  2079.  
  2080. æKY addAssertionKey                        
  2081. æFr InstallerTypes.r
  2082. æT #define
  2083. æD #define addAssertionKey                         16
  2084. æC 
  2085.  
  2086. æKY reportVolErrorKey                      
  2087. æFr InstallerTypes.r
  2088. æT #define
  2089. æD #define reportVolErrorKey                       17
  2090. æC 
  2091.  
  2092. æKY reportSysErrorKey                      
  2093. æFr InstallerTypes.r
  2094. æT #define
  2095. æD #define reportSysErrorKey                       18
  2096. æC 
  2097.  
  2098. æKY addAuditRecKey                         
  2099. æFr InstallerTypes.r
  2100. æT #define
  2101. æD #define addAuditRecKey                          19
  2102. æC 
  2103.  
  2104. æKY checkAuditRecKey                       
  2105. æFr InstallerTypes.r
  2106. æT #define
  2107. æD #define checkAuditRecKey                        20
  2108. æC 
  2109.  
  2110. æKY checkAnyAuditRecKey                    
  2111. æFr InstallerTypes.r
  2112. æT #define
  2113. æD #define checkAnyAuditRecKey                     21
  2114. æC 
  2115.  
  2116. æKY inrl
  2117. æFr InstallerTypes.r
  2118. æT 
  2119. æD 
  2120. /* The Easy Install Rules */
  2121. type 'inrl' {
  2122.     switch {
  2123.         case format0:
  2124.             key integer = 0;
  2125.             hex integer = 0;                                            /* Rule Flags for future use */
  2126.             unsigned integer = $$CountOf(Rules);
  2127.             wide array Rules {
  2128.                 switch {
  2129.                     case alwaysFalse:
  2130.                         key integer = alwaysFalseKey;
  2131.                         
  2132.                     case alwaysTrue:
  2133.                         key integer = alwaysTrueKey;
  2134.                         
  2135.                     case checkGestalt:
  2136.                         key integer = checkGestaltKey;
  2137.                         OSType;                                         /* Gestalt selector */
  2138.                         gestaltList;                                    /* Legal results */
  2139.                     
  2140.                     case checkMinMemory:
  2141.                         key integer = checkMinMemoryKey;
  2142.                         decimal longint;
  2143.  
  2144.                     case checkFileDataForkExists:
  2145.                         key integer = checkFileDataForkExistsKey;
  2146.                         fileSpecID;
  2147.                         
  2148.                     case checkFileRsrcForkExists:
  2149.                         key integer = checkFileRsrcForkExistsKey;
  2150.                         fileSpecID;
  2151.                         
  2152.                     case checkFileContainsRsrcByID:
  2153.                         key integer = checkFileContainsRsrcByIDKey;
  2154.                         fileSpecID;
  2155.                         rsrcType;
  2156.                         rsrcID;
  2157.                         
  2158.                     case checkFileContainsRsrcByName:
  2159.                         key integer = checkFileContainsRsrcByNameKey;
  2160.                         fileSpecID;
  2161.                         rsrcType;
  2162.                         rsrcName;
  2163.                         
  2164.                     case checkFileVersion:
  2165.                         key integer = checkFileVersionKey;
  2166.                         fileSpecID;
  2167.                         version;
  2168.                         
  2169.                     case checkFileCountryCode:
  2170.                         key integer = checkFileCountryCodeKey;
  2171.                         fileSpecID;
  2172.                         integer Region;
  2173.                         
  2174.                     case checkTgtVolSize:
  2175.                         key integer = checkTgtVolSizeKey;
  2176.                         targetVolReqs;
  2177.                                                                                                                                                                                                                                                                
  2178.                     case checkUserFunction:
  2179.                         key integer = checkUserFunctionKey;
  2180.                         rsrcType;
  2181.                         rsrcID;
  2182.                         longint;                    /* RefCon that's passed to the executable resource */
  2183.                         
  2184.                     case checkAllAssertions:
  2185.                         key integer = checkAllAssertionsKey;
  2186.                         assertionList;
  2187.                         
  2188.                     case checkAnyAssertion:
  2189.                         key integer = checkAnyAssertionKey;
  2190.                         assertionList;
  2191.                         
  2192.                     case checkMoreThanOneAssertion:
  2193.                         key integer = checkMoreThanOneAssertionKey;
  2194.                         assertionList;
  2195.                         
  2196.                     case addUserDescription:
  2197.                         key integer = addUserDescriptionKey;
  2198.                         evenPaddedString;
  2199.                         
  2200.                     case addPackages:
  2201.                         key integer = addPackagesKey;
  2202.                         packageList;
  2203.                         
  2204.                     case addAssertion:
  2205.                         key integer = addAssertionKey;
  2206.                         assertionList;
  2207.                         
  2208.                     case reportVolError:
  2209.                         key integer = reportVolErrorKey;
  2210.                         evenPaddedString;
  2211.                         
  2212.                     case reportSysError:
  2213.                         key integer = reportSysErrorKey;
  2214.                         evenPaddedString;
  2215.                         
  2216.                     case addAuditRec:
  2217.                         key integer = addAuditRecKey;
  2218.                         fileSpecID;
  2219.                         OSType;
  2220.                         literal longint;
  2221.                         
  2222.                     case checkAuditRec:
  2223.                         key integer = checkAuditRecKey;
  2224.                         fileSpecID;
  2225.                         OSType;
  2226.                         literal longint;
  2227.                         
  2228.                     case checkAnyAuditRec:
  2229.                         key integer = checkAnyAuditRecKey;
  2230.                         fileSpecID;
  2231.                         OSType;
  2232.                         longIntList;
  2233.                         
  2234.             };
  2235.         };
  2236.     };
  2237. };
  2238.  
  2239. æC 
  2240.  
  2241. æKY RuleList 
  2242. æFr InstallerTypes.r
  2243. æT #define
  2244. æD #define RuleList  IntegerList
  2245. æC 
  2246.  
  2247. æKY infr
  2248. æFr InstallerTypes.r
  2249. æT 
  2250. æD     
  2251. /* The rule framework */
  2252. type 'infr' {
  2253.     switch {
  2254.         case format0:
  2255.             key integer = 0;                                /* Rule framework version */
  2256.             unsigned integer = $$CountOf(RuleArray);
  2257.             wide array RuleArray {
  2258.                 boolean pickFirst, pickAll;                 /* which packages to select? */                     
  2259.                 fill bit[15];
  2260.                 ruleList;                                   /* List of rules */                                 
  2261.             };
  2262.     };
  2263. };
  2264.  
  2265. æC 
  2266.  
  2267. æKY indo
  2268. æFr InstallerTypes.r
  2269. æT 
  2270. æD 
  2271. /* The list of disks we may need, and the order we want them to appear in */
  2272. /* This is optional. */
  2273. type 'indo' {
  2274.     switch {
  2275.         case format0:
  2276.             key integer = 0;                                /* indo version */
  2277.             integer = $$Countof(StringArray);
  2278.             array StringArray {
  2279.                     evenPaddedString;
  2280.             };
  2281.     };
  2282. };
  2283. æC 
  2284.  
  2285. æKY invs
  2286. æFr InstallerTypes.r
  2287. æT 
  2288. æD 
  2289. /* This script resource defines the minimum Installer version that is required */
  2290. /* to run the script.  If an Installer app is launched that is older than this */
  2291. /* required version, the user receives a dialog telling him/her to run a newer Installer */
  2292. /* This is optional. */
  2293. type 'invs' {
  2294.     switch {
  2295.         case format0:
  2296.             key integer = 0;
  2297.             hex byte;                                               /* Major revision in BCD*/
  2298.             hex byte;                                               /* Minor vevision in BCD*/
  2299.             hex byte    development = 0x20,                         /* Release stage        */
  2300.                         alpha = 0x40,
  2301.                         beta = 0x60,
  2302.                         final = 0x80, /* or */ release = 0x80;
  2303.             hex byte;                                               /* Non-final release #  */
  2304.             pstring;                                                /* Short version number */
  2305.     };
  2306. };
  2307.  
  2308.  
  2309.  
  2310. æKY MPWTypes.r
  2311. æKL 
  2312. activMask       
  2313. autoKeyMask      
  2314. diskMask        
  2315. driverMask     
  2316. DRVW
  2317. everyEvent       
  2318. keyDownMask       
  2319. keyUpMask        
  2320. mDownMask
  2321. mUpMask           
  2322. networkMask    
  2323. updateMask       
  2324.  
  2325. æKY mDownMask
  2326. æFr MPWTypes.r
  2327. æT #define
  2328. æD #define mDownMask          2         /* Event mask values for drvrEMask */
  2329. æC 
  2330.  
  2331. æKY mUpMask           
  2332. æFr MPWTypes.r
  2333. æT #define
  2334. æD #define mUpMask            4
  2335. æC 
  2336.  
  2337. æKY keyDownMask       
  2338. æFr MPWTypes.r
  2339. æT #define
  2340. æD #define keyDownMask        8
  2341. æC 
  2342.  
  2343. æKY keyUpMask        
  2344. æFr MPWTypes.r
  2345. æT #define
  2346. æD #define keyUpMask         16
  2347. æC 
  2348.  
  2349. æKY autoKeyMask      
  2350. æFr MPWTypes.r
  2351. æT #define
  2352. æD #define autoKeyMask       32
  2353. æC 
  2354.  
  2355. æKY updateMask       
  2356. æFr MPWTypes.r
  2357. æT #define
  2358. æD #define updateMask        64
  2359. æC 
  2360.  
  2361. æKY diskMask        
  2362. æFr MPWTypes.r
  2363. æT #define
  2364. æD #define diskMask         128
  2365. æC 
  2366.  
  2367. æKY activMask       
  2368. æFr MPWTypes.r
  2369. æT #define
  2370. æD #define activMask        256
  2371. æC 
  2372.  
  2373. æKY networkMask    
  2374. æFr MPWTypes.r
  2375. æT #define
  2376. æD #define networkMask     1024
  2377. æC 
  2378.  
  2379. æKY driverMask     
  2380. æFr MPWTypes.r
  2381. æT #define
  2382. æD #define driverMask      2048
  2383. æC 
  2384.  
  2385. æKY everyEvent       
  2386. æFr MPWTypes.r
  2387. æT #define
  2388. æD #define everyEvent        -1
  2389. æC 
  2390.  
  2391. æKY DRVW
  2392. æFr MPWTypes.r
  2393. æT 
  2394. æD 
  2395. /*
  2396.  * When building a DRVR resource, insert the line:
  2397.  *
  2398.  *      type 'DRVR' as 'DRVW';
  2399.  *
  2400.  * in your resource file before your "resource 'DRVR' ..." declaration.
  2401.  */
  2402.  
  2403. type 'DRVW' {
  2404.     boolean = 0;                            /* unused */
  2405.     boolean dontNeedLock,    needLock;      /* lock drvr in memory  */
  2406.     boolean dontNeedTime,    needTime;      /* for periodic action  */
  2407.     boolean dontNeedGoodbye, needGoodbye;   /* call before heap reinit*/
  2408.     boolean noStatusEnable,  statusEnable;  /* responds to status   */
  2409.     boolean noCtlEnable,     ctlEnable;     /* responds to control  */
  2410.     boolean noWriteEnable,   writeEnable;   /* responds to write    */
  2411.     boolean noReadEnable,    readEnable;    /* responds to read     */
  2412.  
  2413.     byte = 0;                   /* low byte of drvrFlags word unused */
  2414.  
  2415.     unsigned integer;           /* driver delay (ticks) */
  2416.     integer;                    /* desk acc event mask  */
  2417.     integer;                    /* driver menu ID       */
  2418.  
  2419.     unsigned integer = 50;      /* offset to DRVRRuntime open   */
  2420.     unsigned integer = 54;      /* offset to DRVRRuntime prime  */
  2421.     unsigned integer = 58;      /* offset to DRVRRuntime control*/
  2422.     unsigned integer = 62;      /* offset to DRVRRuntime status */
  2423.     unsigned integer = 66;      /* offset to DRVRRuntime close  */
  2424.  
  2425.     pstring[31];                /* driver name */
  2426.  
  2427.     hex string;                 /* driver code (use $$resource(...)) */
  2428. };
  2429.  
  2430. #endif __MPWTYPES.R__
  2431.  
  2432.  
  2433.  
  2434. æKY Pict.r
  2435. æKL 
  2436. AppleReserved0092Start
  2437. BitsRectpMapRowBytes
  2438. BitsRectRowBytes
  2439. BkPixPatpMapRowBytes
  2440. clipRgnEnd
  2441. ClipStart
  2442. FillPixPatpMapRowBytes
  2443. frameRgnStart
  2444. PackBitsRectBits
  2445. PICT
  2446.  
  2447. æKY PICT
  2448. æFr Pict.r
  2449. æT 
  2450. æD type 'PICT' {
  2451.     startOfPict:
  2452.         unsigned integer = (endOfPict - startOfPict) >> 3;
  2453.         Rect;                                   /* Bounds of picture */
  2454.         switch {
  2455.             case VersionOne:
  2456.                 key integer = $1101;
  2457.                 array OpCodes {
  2458.                     switch {
  2459.                         case NOP:
  2460.                             key byte = $00;
  2461.  
  2462.                         case clipRgn:
  2463.                             key byte = $01;
  2464.     clipRgnStart:           integer = (clipRgnEnd[$$ArrayIndex(OpCodes)] - clipRgnStart[$$ArrayIndex(OpCodes)]) >> 3;
  2465.                             Rect;               /* region's enclosing rect */
  2466.                             hex string [$$Word(clipRgnStart[$$ArrayIndex(OpCodes)]) - 10];
  2467. æC 
  2468.  
  2469. æKY clipRgnEnd
  2470. æFr Pict.r
  2471. æT 
  2472. æD     clipRgnEnd:
  2473.                         case bkPat:
  2474.                             key byte = $02;
  2475.                             hex string [8];
  2476.                         
  2477.                         case txFont:
  2478.                             key byte = $03;
  2479.                             integer;            /* font */
  2480.                         
  2481.                         case txFace:
  2482.                             key byte = $04;
  2483.                             unsigned hex byte;  /* text face */
  2484.                         
  2485.                         case txMode:
  2486.                             key byte = $05;
  2487.                             integer     srcCopy, srcOr, srcXor, srcBic, /* mode */
  2488.                                         notSrcCopy, notSrcOr, notSrcXor,
  2489.                                         notSrcBic, patCopy, patOr, patXor,
  2490.                                         patBic, notPatCopy, notPatOr, notPatBic;
  2491.                         
  2492.                         case spExtra:
  2493.                             key byte = $06;
  2494.                             unsigned hex longint;
  2495.                         
  2496.                         case pnSize:
  2497.                             key byte = $07;
  2498.                             Point;
  2499.                         
  2500.                         case pnMode:
  2501.                             key byte = $08;
  2502.                             unsigned hex integer;
  2503.                         
  2504.                         case pnPat:
  2505.                             key byte = $09;
  2506.                             hex string [8];
  2507.                         
  2508.                         case thePat:
  2509.                             key byte = $0A;
  2510.                             hex string [8];
  2511.                         
  2512.                         case ovSize:
  2513.                             key byte = $0B;
  2514.                             Point;
  2515.                         
  2516.                         case origin:
  2517.                             key byte = $0C;
  2518.                             integer;            /* dh */
  2519.                             integer;            /* dv */
  2520.                         
  2521.                         case txSize:
  2522.                             key byte = $0D;
  2523.                             integer;
  2524.                         
  2525.                         case fgColor:
  2526.                             key byte = $0E;
  2527.                             longint;
  2528.                         
  2529.                         case bkColor:
  2530.                             key byte = $0F;
  2531.                             longint;
  2532.                         
  2533.                         case txRatio:
  2534.                             key byte = $10;
  2535.                             Point;              /* numer */
  2536.                             Point;              /* denom */
  2537.                         
  2538.                         case picVersion:
  2539.                             key byte = $11;
  2540.                             byte;
  2541.                         
  2542.                         case line:
  2543.                             key byte = $20;
  2544.                             Point;              /* pnLoc */
  2545.                             Point;              /* newPt */
  2546.                         
  2547.                         case lineFrom:
  2548.                             key byte = $21;
  2549.                             Point;              /* newPt */
  2550.                         
  2551.                         case shortLine:
  2552.                             key byte = $22;
  2553.                             Point;              /* pnLoc */
  2554.                             byte;               /* dh */
  2555.                             byte;               /* dv */
  2556.                         
  2557.                         case shortLineFrom:
  2558.                             key byte = $23;
  2559.                             byte;               /* dh */
  2560.                             byte;               /* dv */
  2561.                         
  2562.                         case longText:
  2563.                             key byte = $28;
  2564.                             Point;              /* txLoc */
  2565.                             pstring;
  2566.                         
  2567.                         case dhText:
  2568.                             key byte = $29;
  2569.                             byte;               /* dh */
  2570.                             pstring;
  2571.                             
  2572.                         case dvText:
  2573.                             key byte = $2A;
  2574.                             byte;               /* dvh */
  2575.                             pstring;
  2576.                             
  2577.                         case dhdvText:
  2578.                             key byte = $2B;
  2579.                             byte;               /* dh */
  2580.                             byte;               /* dv */
  2581.                             pstring;
  2582.                             
  2583.                         case frameRect:
  2584.                             key byte = $30;
  2585.                             Rect;
  2586.                             
  2587.                         case paintRect:
  2588.                             key byte = $31;
  2589.                             Rect;
  2590.                             
  2591.                         case eraseRect:
  2592.                             key byte = $32;
  2593.                             Rect;
  2594.                             
  2595.                         case invertRect:
  2596.                             key byte = $33;
  2597.                             Rect;
  2598.                             
  2599.                         case fillRect:
  2600.                             key byte = $34;
  2601.                             Rect;
  2602.                         
  2603.                         case frameSameRect:
  2604.                             key byte = $38;
  2605.                             
  2606.                         case paintSameRect:
  2607.                             key byte = $39;
  2608.                             
  2609.                         case eraseSameRect:
  2610.                             key byte = $3A;
  2611.                             
  2612.                         case invertSameRect:
  2613.                             key byte = $3B;
  2614.                             
  2615.                         case fillSameRect:
  2616.                             key byte = $3C;
  2617.                         
  2618.                         case frameRRect:
  2619.                             key byte = $40;
  2620.                             Rect;
  2621.                             
  2622.                         case paintRRect:
  2623.                             key byte = $41;
  2624.                             Rect;
  2625.                             
  2626.                         case eraseRRect:
  2627.                             key byte = $42;
  2628.                             Rect;
  2629.                             
  2630.                         case invertRRect:
  2631.                             key byte = $43;
  2632.                             Rect;
  2633.                             
  2634.                         case fillRRect:
  2635.                             key byte = $44;
  2636.                             Rect;
  2637.                             
  2638.                         case frameSameRRect:
  2639.                             key byte = $48;
  2640.                             
  2641.                         case paintSameRRect:
  2642.                             key byte = $49;
  2643.                             
  2644.                         case eraseSameRRect:
  2645.                             key byte = $4A;
  2646.                             
  2647.                         case invertSameRRect:
  2648.                             key byte = $4B;
  2649.                             
  2650.                         case fillSameRRect:
  2651.                             key byte = $4C;
  2652.                             
  2653.                         case frameOval:
  2654.                             key byte = $50;
  2655.                             Rect;
  2656.                             
  2657.                         case paintOval:
  2658.                             key byte = $51;
  2659.                             Rect;
  2660.                             
  2661.                         case eraseOval:
  2662.                             key byte = $52;
  2663.                             Rect;
  2664.                             
  2665.                         case invertOval:
  2666.                             key byte = $53;
  2667.                             Rect;
  2668.                             
  2669.                         case fillOval:
  2670.                             key byte = $54;
  2671.                             Rect;
  2672.                         
  2673.                         case frameSameOval:
  2674.                             key byte = $58;
  2675.                             
  2676.                         case paintSameOval:
  2677.                             key byte = $59;
  2678.                             
  2679.                         case eraseSameOval:
  2680.                             key byte = $5A;
  2681.                             
  2682.                         case invertSameOval:
  2683.                             key byte = $5B;
  2684.                             
  2685.                         case fillSameOval:
  2686.                             key byte = $5C;
  2687.                         
  2688.                         case frameArc:
  2689.                             key byte = $60;
  2690.                             Rect;
  2691.                             integer;                /* startAngle */
  2692.                             integer;                /* arcAngle */
  2693.                         
  2694.                         case paintArc:
  2695.                             key byte = $61;
  2696.                             Rect;
  2697.                             integer;                /* startAngle */
  2698.                             integer;                /* arcAngle */
  2699.                         
  2700.                         case eraseArc:
  2701.                             key byte = $62;
  2702.                             Rect;
  2703.                             integer;                /* startAngle */
  2704.                             integer;                /* arcAngle */
  2705.                         
  2706.                         case invertArc:
  2707.                             key byte = $63;
  2708.                             Rect;
  2709.                             integer;                /* startAngle */
  2710.                             integer;                /* arcAngle */
  2711.                         
  2712.                         case fillArc:
  2713.                             key byte = $64;
  2714.                             Rect;
  2715.                             integer;                /* startAngle */
  2716.                             integer;                /* arcAngle */
  2717.                         
  2718.                         case frameSameArc:
  2719.                             key byte = $68;
  2720.                             integer;                /* startAngle */
  2721.                             integer;                /* arcAngle */
  2722.  
  2723.                         case paintSameArc:
  2724.                             key byte = $69;
  2725.                             integer;                /* startAngle */
  2726.                             integer;                /* arcAngle */
  2727.  
  2728.                         case eraseSameArc:
  2729.                             key byte = $6A;
  2730.                             integer;                /* startAngle */
  2731.                             integer;                /* arcAngle */
  2732.  
  2733.                         case invertSameArc:
  2734.                             key byte = $6B;
  2735.                             integer;                /* startAngle */
  2736.                             integer;                /* arcAngle */
  2737.  
  2738.                         case fillSameArc:
  2739.                             key byte = $6C;
  2740.                             integer;                /* startAngle */
  2741.                             integer;                /* arcAngle */
  2742.                         
  2743.                         case framePoly:
  2744.                             key byte = $70;
  2745.                             integer = $$CountOf(framePoly) * 4 + 10;
  2746.                             Rect;                   /* enclosing rectangle */
  2747.                             array framePoly {
  2748.                                 Point;
  2749.                             };
  2750.                         
  2751.                         case paintPoly:
  2752.                             key byte = $71;
  2753.                             integer = $$CountOf(framePoly) * 4 + 10;
  2754.                             Rect;                   /* enclosing rectangle */
  2755.                             array framePoly {
  2756.                                 Point;
  2757.                             };
  2758.                         
  2759.                         case erasePoly:
  2760.                             key byte = $72;
  2761.                             integer = $$CountOf(framePoly) * 4 + 10;
  2762.                             Rect;                   /* enclosing rectangle */
  2763.                             array framePoly {
  2764.                                 Point;
  2765.                             };
  2766.                         
  2767.                         case invertPoly:
  2768.                             key byte = $73;
  2769.                             integer = $$CountOf(framePoly) * 4 + 10;
  2770.                             Rect;                   /* enclosing rectangle */
  2771.                             array framePoly {
  2772.                                 Point;
  2773.                             };
  2774.                         
  2775.                         case fillPoly:
  2776.                             key byte = $74;
  2777.                             integer = $$CountOf(framePoly) * 4 + 10;
  2778.                             Rect;                   /* enclosing rectangle */
  2779.                             array framePoly {
  2780.                                 Point;
  2781.                             };
  2782.                         
  2783.                         case frameSamePoly:
  2784.                             key byte = $78;
  2785.     
  2786.                         case paintSamePoly:
  2787.                             key byte = $79;
  2788.     
  2789.                         case eraseSamePoly:
  2790.                             key byte = $7A;
  2791.     
  2792.                         case invertSamePoly:
  2793.                             key byte = $7B;
  2794.     
  2795.                         case fillSamePoly:
  2796.                             key byte = $7C;
  2797.     
  2798.                         case frameRgn:
  2799.                             key byte = $80;
  2800. æC 
  2801.  
  2802. æKY frameRgnStart
  2803. æFr Pict.r
  2804. æT 
  2805. æD     frameRgnStart:          integer = (frameRgnEnd[$$ArrayIndex(OpCodes)] - frameRgnStart[$$ArrayIndex(OpCodes)]) >> 3;
  2806.                             Rect;               /* region's enclosing rect */
  2807.                             hex string [$$Word(frameRgnStart[$$ArrayIndex(OpCodes)]) - 10];
  2808.     frameRgnEnd:
  2809.                         case paintRgn:
  2810.                             key byte = $81;
  2811.     paintRgnStart:          integer = (paintRgnEnd[$$ArrayIndex(OpCodes)] - paintRgnStart[$$ArrayIndex(OpCodes)]) >> 3;
  2812.                             Rect;               /* region's enclosing rect */
  2813.                             hex string [$$Word(paintRgnStart[$$ArrayIndex(OpCodes)]) - 10];
  2814.     paintRgnEnd:
  2815.                         case eraseRgn:
  2816.                             key byte = $82;
  2817.     eraseRgnStart:          integer = (eraseRgnEnd[$$ArrayIndex(OpCodes)] - eraseRgnStart[$$ArrayIndex(OpCodes)]) >> 3;
  2818.                             Rect;               /* region's enclosing rect */
  2819.                             hex string [$$Word(eraseRgnStart[$$ArrayIndex(OpCodes)]) - 10];
  2820.     eraseRgnEnd:
  2821.                         case invertRgn:
  2822.                             key byte = $83;
  2823.     invertRgnStart:         integer = (invertRgnEnd[$$ArrayIndex(OpCodes)] - invertRgnStart[$$ArrayIndex(OpCodes)]) >> 3;
  2824.                             Rect;               /* region's enclosing rect */
  2825.                             hex string [$$Word(invertRgnStart[$$ArrayIndex(OpCodes)]) - 10];
  2826.     invertRgnEnd:
  2827.                         case fillRgn:
  2828.                             key byte = $84;
  2829.     fillRgnStart:           integer = (fillRgnEnd[$$ArrayIndex(OpCodes)] - fillRgnStart[$$ArrayIndex(OpCodes)]) >> 3;
  2830.                             Rect;               /* region's enclosing rect */
  2831.                             hex string [$$Word(fillRgnStart[$$ArrayIndex(OpCodes)]) - 10];
  2832.     fillRgnEnd:
  2833.                         case frameSameRgn:
  2834.                             key byte = $88;
  2835.  
  2836.                         case paintSameRgn:
  2837.                             key byte = $89;
  2838.  
  2839.                         case eraseSameRgn:
  2840.                             key byte = $8A;
  2841.  
  2842.                         case invertSameRgn:
  2843.                             key byte = $8B;
  2844.  
  2845.                         case fillSameRgn:
  2846.                             key byte = $8C;
  2847.  
  2848.                         case bitsRect:
  2849.                             key byte = $90;
  2850. æC 
  2851.  
  2852. æKY BitsRectRowBytes
  2853. æFr Pict.r
  2854. æT 
  2855. æD     BitsRectRowBytes:       integer;                    /* row bytes */
  2856.     BitsRectBounds:         Rect;                       /* bounds */
  2857.                             Rect;                       /* srcRect */
  2858.                             Rect;                       /* destRect */
  2859.                             integer     srcCopy, srcOr, srcXor, srcBic, /* mode */
  2860.                                         notSrcCopy, notSrcOr, notSrcXor,
  2861.                                         notSrcBic, patCopy, patOr, patXor,
  2862.                                         patBic, notPatCopy, notPatOr, notPatBic;
  2863.                             hex string [($$BitField(BitsRectBounds[$$ArrayIndex(OpCodes)],32,16)
  2864.                                         - $$BitField(BitsRectBounds[$$ArrayIndex(OpCodes)],0,16))
  2865.                                         * $$Word(BitsRectRowBytes[$$ArrayIndex(OpCodes)])];
  2866.  
  2867.                         case bitsRgn:
  2868.                             key byte = $91;
  2869.     BitsRgnRowBytes:        integer;                    /* row bytes */
  2870.     BitsRgnBounds:          Rect;                       /* bounds */
  2871.                             Rect;                       /* srcRect */
  2872.                             Rect;                       /* destRect */
  2873.                             integer     srcCopy, srcOr, srcXor, srcBic, /* mode */
  2874.                                         notSrcCopy, notSrcOr, notSrcXor,
  2875.                                         notSrcBic, patCopy, patOr, patXor,
  2876.                                         patBic, notPatCopy, notPatOr, notPatBic;
  2877.     bitsRgnStart:           integer = (bitsRgnEnd[$$ArrayIndex(OpCodes)] - bitsRgnStart[$$ArrayIndex(OpCodes)]) >> 3;
  2878.                             Rect;               /* region's enclosing rect */
  2879.                             hex string [$$Word(bitsRgnStart[$$ArrayIndex(OpCodes)]) - 10];
  2880.     bitsRgnEnd:
  2881.                             hex string [($$BitField(BitsRgnBounds[$$ArrayIndex(OpCodes)],32,16)
  2882.                                         - $$BitField(BitsRgnBounds[$$ArrayIndex(OpCodes)],0,16))
  2883.                                         * $$Word(BitsRgnRowBytes[$$ArrayIndex(OpCodes)])];
  2884.  
  2885.                         case packBitsRect:
  2886.                             key byte = $98;
  2887.     PackBitsRectRowBytes:   integer;                    /* row bytes */
  2888.     PackBitsRectBounds:     Rect;                       /* bounds */
  2889.                             Rect;                       /* srcRect */
  2890.                             Rect;                       /* destRect */
  2891.                             integer     srcCopy, srcOr, srcXor, srcBic, /* mode */
  2892.                                         notSrcCopy, notSrcOr, notSrcXor,
  2893.                                         notSrcBic, patCopy, patOr, patXor,
  2894.                                         patBic, notPatCopy, notPatOr, notPatBic;
  2895.     PackBitsBits:           hex string [$$PackedSize(PackBitsBits[$$ArrayIndex(OpCodes)],
  2896.                                         $$Word(PackBitsRectRowBytes[$$ArrayIndex(OpCodes)]),
  2897.                                         ($$BitField(PackBitsRectBounds[$$ArrayIndex(OpCodes)],32,16)
  2898.                                         - $$BitField(PackBitsRectBounds[$$ArrayIndex(OpCodes)],0,16)))];
  2899.  
  2900.                         case packBitsRgn:
  2901.                             key byte = $99;
  2902.     packBitsRgnRowBytes:    integer;                    /* row bytes */
  2903.     packBitsRgnBounds:      Rect;                       /* bounds */
  2904.                             Rect;                       /* srcRect */
  2905.                             Rect;                       /* destRect */
  2906.                             integer     srcCopy, srcOr, srcXor, srcBic, /* mode */
  2907.                                         notSrcCopy, notSrcOr, notSrcXor,
  2908.                                         notSrcBic, patCopy, patOr, patXor,
  2909.                                         patBic, notPatCopy, notPatOr, notPatBic;
  2910.     packBitsRgnStart:       integer = (packBitsRgnEnd[$$ArrayIndex(OpCodes)] - packBitsRgnStart[$$ArrayIndex(OpCodes)]) >> 3;
  2911.                             Rect;               /* region's enclosing rect */
  2912.                             hex string [$$Word(packBitsRgnStart[$$ArrayIndex(OpCodes)]) - 10];
  2913.     packBitsRgnEnd:         hex string [$$PackedSize(packBitsRgnEnd[$$ArrayIndex(OpCodes)],
  2914.                                         $$Word(packBitsRgnRowBytes[$$ArrayIndex(OpCodes)]),
  2915.                                         ($$BitField(packBitsRgnBounds[$$ArrayIndex(OpCodes)],32,16)
  2916.                                         - $$BitField(packBitsRgnBounds[$$ArrayIndex(OpCodes)],0,16)))];
  2917.     
  2918.                         case shortComment:
  2919.                             key byte = $A0;
  2920.                             integer;            /* kind */
  2921.  
  2922.                         case longComment:
  2923.                             key byte = $A1;
  2924.                             integer;            /* kind */
  2925.     longCommentStart:       integer = (longCommentEnd[$$ArrayIndex(OpCodes)] - longCommentStart[$$ArrayIndex(OpCodes)] - 16) >> 3;
  2926.                             hex string [$$Word(longCommentStart[$$ArrayIndex(OpCodes)])];
  2927.     longCommentEnd:
  2928.                     };
  2929.                 };
  2930.                 byte = $FF;     /* End of picture */
  2931.                 
  2932.             case VersionTwo:
  2933.                 key longint = $001102ff;        /* Version op + version */
  2934.                 array OpCodes {
  2935.                     switch {
  2936.                         case Clip:
  2937.                             key integer = $0001;
  2938. æC 
  2939.  
  2940. æKY ClipStart
  2941. æFr Pict.r
  2942. æT 
  2943. æD     ClipStart:              integer = (ClipEnd[$$ArrayIndex(OpCodes)] - ClipStart[$$ArrayIndex(OpCodes)]) >> 3;
  2944.                             Rect;               /* region's enclosing rect */
  2945.                             hex string [$$Word(ClipStart[$$ArrayIndex(OpCodes)]) - 10];
  2946.     ClipEnd:
  2947.                         case BkPat:
  2948.                             key integer = $0002;
  2949.                             hex string [8];
  2950.                         
  2951.                         case TxFont:
  2952.                             key integer = $0003;
  2953.                             integer;            /* font */
  2954.                         
  2955.                         case TxFace:
  2956.                             key integer = $0004;
  2957.                             unsigned hex byte;  /* text face */
  2958.                         
  2959.                         case TxMode:
  2960.                             key integer = $0005;
  2961.                             integer     srcCopy, srcOr, srcXor, srcBic, /* mode */
  2962.                                         notSrcCopy, notSrcOr, notSrcXor,
  2963.                                         notSrcBic, patCopy, patOr, patXor,
  2964.                                         patBic, notPatCopy, notPatOr, notPatBic;
  2965.                         
  2966.                         case SpExtra:
  2967.                             key integer = $0006;
  2968.                             unsigned hex longint;
  2969.                         
  2970.                         case PnSize:
  2971.                             key integer = $0007;
  2972.                             Point;
  2973.                         
  2974.                         case PnMode:
  2975.                             key integer = $0008;
  2976.                             unsigned hex integer;
  2977.                         
  2978.                         case PnPat:
  2979.                             key integer = $0009;
  2980.                             hex string [8];
  2981.                         
  2982.                         case FillPat:
  2983.                             key integer = $000A;
  2984.                             hex string [8];
  2985.                         
  2986.                         case OvSize:
  2987.                             key integer = $000B;
  2988.                             Point;
  2989.                         
  2990.                         case Origin:
  2991.                             key integer = $000C;
  2992.                             integer;            /* dh */
  2993.                             integer;            /* dv */
  2994.                         
  2995.                         case TxSize:
  2996.                             key integer = $000D;
  2997.                             integer;
  2998.                         
  2999.                         case FgColor:
  3000.                             key integer = $000E;
  3001.                             longint;
  3002.                         
  3003.                         case BkColor:
  3004.                             key integer = $000F;
  3005.                             longint;
  3006.                         
  3007.                         case TxRatio:
  3008.                             key integer = $0010;
  3009.                             Point;              /* numer */
  3010.                             Point;              /* denom */
  3011.                         
  3012.                         case Version:
  3013.                             key integer = $0011;
  3014.                             byte;
  3015.  
  3016.                         case BkPixPat:
  3017.                             key integer = $0012;
  3018.                             switch {
  3019.                                 case newPattern:
  3020.                                     key integer = 1;
  3021.                                     hex string [8];         /* old-style pattern    */
  3022.                                     unsigned bitstring[1] = 1;                              /* New pixMap flag      */
  3023.                                     unsigned bitstring[2] = 0;                              /* Must be 0            */
  3024. æC 
  3025.  
  3026. æKY BkPixPatpMapRowBytes
  3027. æFr Pict.r
  3028. æT 
  3029. æD     BkPixPatpMapRowBytes:           unsigned bitstring[13];                                 /* Offset to next row   */
  3030.     BkPixPatBounds:                 rect;                                                   /* Bitmap bounds        */
  3031.                                     integer;                                                /* pixMap vers number   */
  3032.                                     integer unpacked;                                       /* Packing format       */
  3033.                                     unsigned longint;                                       /* Size of pixel data   */
  3034.                                     unsigned hex longint;                                   /* h. resolution (ppi) (fixed) */
  3035.                                     unsigned hex longint;                                   /* v. resolution (ppi) (fixed) */
  3036.                                     integer         chunky, chunkyPlanar, planar;           /* Pixel storage format */
  3037.                                     integer;                                                /* # bits in pixel      */
  3038.                                     integer;                                                /* # components in pixel*/
  3039.                                     integer;                                                /* # bits per field     */
  3040.                                     unsigned longint;                                       /* Offset to next plane */
  3041.                                     unsigned longint;                                       /* Offset to color table*/
  3042.                                     fill long;                                              /* Reserved             */
  3043.                                     /* Color Table */
  3044.                                     unsigned hex longint;                                   /* ctSeed               */
  3045.                                     integer;                                                /* ctFlags              */
  3046.                                     integer = $$Countof(ColorSpec) - 1;                     /* ctSize               */
  3047.                                     wide array ColorSpec {
  3048.                                             integer;                                        /* value                */
  3049.                                             unsigned integer;                               /* RGB: red             */
  3050.                                             unsigned integer;                               /*      green           */
  3051.                                             unsigned integer;                               /*      blue            */
  3052.                                     };
  3053.                                     /* If rowBytes < 8 then data is unpacked,
  3054.                                        if >= 8, then data is packed */
  3055.     BkPixPatBits:                   hex string [($$BitField(BkPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) < 8) *
  3056.                                                 $$BitField(BkPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) +
  3057.                                                 ($$BitField(BkPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) >= 8) *
  3058.                                                 $$PackedSize(BkPixPatBits[$$ArrayIndex(OpCodes)],
  3059.                                                 $$BitField(BkPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13),
  3060.                                                 ($$BitField(BkPixPatBounds[$$ArrayIndex(OpCodes)],32,16)
  3061.                                                 - $$BitField(BkPixPatBounds[$$ArrayIndex(OpCodes)],0,16)))];
  3062.                                 
  3063.                                 case ditherPattern:
  3064.                                     key integer = 2;
  3065.                                     hex string [8];         /* old-style pattern    */
  3066.                                     unsigned integer;       /* RGB: red             */
  3067.                                     unsigned integer;       /*      green           */
  3068.                                     unsigned integer;       /*      blue            */
  3069.                             };
  3070.  
  3071.                         case PnPixPat:
  3072.                             key integer = $0013;
  3073.                             switch {
  3074.                                 case newPattern:
  3075.                                     key integer = 1;
  3076.                                     hex string [8];         /* old-style pattern    */
  3077.                                     unsigned bitstring[1] = 1;                              /* New pixMap flag      */
  3078.                                     unsigned bitstring[2] = 0;                              /* Must be 0            */
  3079.     PnPixPatpMapRowBytes:           unsigned bitstring[13];                                 /* Offset to next row   */
  3080.     PnPixPatBounds:                 rect;                                                   /* Bitmap bounds        */
  3081.                                     integer;                                                /* pixMap vers number   */
  3082.                                     integer unpacked;                                       /* Packing format       */
  3083.                                     unsigned longint;                                       /* Size of pixel data   */
  3084.                                     unsigned hex longint;                                   /* h. resolution (ppi) (fixed) */
  3085.                                     unsigned hex longint;                                   /* v. resolution (ppi) (fixed) */
  3086.                                     integer         chunky, chunkyPlanar, planar;           /* Pixel storage format */
  3087.                                     integer;                                                /* # bits in pixel      */
  3088.                                     integer;                                                /* # components in pixel*/
  3089.                                     integer;                                                /* # bits per field     */
  3090.                                     unsigned longint;                                       /* Offset to next plane */
  3091.                                     unsigned longint;                                       /* Offset to color table*/
  3092.                                     fill long;                                              /* Reserved             */
  3093.                                     /* Color Table */
  3094.                                     unsigned hex longint;                                   /* ctSeed               */
  3095.                                     integer;                                                /* ctFlags              */
  3096.                                     integer = $$Countof(ColorSpec) - 1;                     /* ctSize               */
  3097.                                     wide array ColorSpec {
  3098.                                             integer;                                        /* value                */
  3099.                                             unsigned integer;                               /* RGB: red             */
  3100.                                             unsigned integer;                               /*      green           */
  3101.                                             unsigned integer;                               /*      blue            */
  3102.                                     };
  3103.                                     /* If rowBytes < 8 then data is unpacked,
  3104.                                        if >= 8, then data is packed */
  3105.     PnPixPatBits:                   hex string [($$BitField(PnPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) < 8) *
  3106.                                                 $$BitField(PnPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) +
  3107.                                                 ($$BitField(PnPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) >= 8) *
  3108.                                                 $$PackedSize(PnPixPatBits[$$ArrayIndex(OpCodes)],
  3109.                                                 $$BitField(PnPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13),
  3110.                                                 ($$BitField(PnPixPatBounds[$$ArrayIndex(OpCodes)],32,16)
  3111.                                                 - $$BitField(PnPixPatBounds[$$ArrayIndex(OpCodes)],0,16)))];
  3112.                                 
  3113.                                 case ditherPattern:
  3114.                                     key integer = 2;
  3115.                                     hex string [8];         /* old-style pattern    */
  3116.                                     unsigned integer;       /* RGB: red             */
  3117.                                     unsigned integer;       /*      green           */
  3118.                                     unsigned integer;       /*      blue            */
  3119.                             };
  3120.  
  3121.                         case FillPixPat:
  3122.                             key integer = $0014;
  3123.                             switch {
  3124.                                 case newPattern:
  3125.                                     key integer = 1;
  3126.                                     hex string [8];         /* old-style pattern    */
  3127.                                     unsigned bitstring[1] = 1;                              /* New pixMap flag      */
  3128.                                     unsigned bitstring[2] = 0;                              /* Must be 0            */
  3129. æC 
  3130.  
  3131. æKY FillPixPatpMapRowBytes
  3132. æFr Pict.r
  3133. æT 
  3134. æD     FillPixPatpMapRowBytes:         unsigned bitstring[13];                                 /* Offset to next row   */
  3135.     FillPixPatBounds:                   rect;                                                   /* Bitmap bounds        */
  3136.                                     integer;                                                /* pixMap vers number   */
  3137.                                     integer unpacked;                                       /* Packing format       */
  3138.                                     unsigned longint;                                       /* Size of pixel data   */
  3139.                                     unsigned hex longint;                                   /* h. resolution (ppi) (fixed) */
  3140.                                     unsigned hex longint;                                   /* v. resolution (ppi) (fixed) */
  3141.                                     integer         chunky, chunkyPlanar, planar;           /* Pixel storage format */
  3142.                                     integer;                                                /* # bits in pixel      */
  3143.                                     integer;                                                /* # components in pixel*/
  3144.                                     integer;                                                /* # bits per field     */
  3145.                                     unsigned longint;                                       /* Offset to next plane */
  3146.                                     unsigned longint;                                       /* Offset to color table*/
  3147.                                     fill long;                                              /* Reserved             */
  3148.                                     /* Color Table */
  3149.                                     unsigned hex longint;                                   /* ctSeed               */
  3150.                                     integer;                                                /* ctFlags              */
  3151.                                     integer = $$Countof(ColorSpec) - 1;                     /* ctSize               */
  3152.                                     wide array ColorSpec {
  3153.                                             integer;                                        /* value                */
  3154.                                             unsigned integer;                               /* RGB: red             */
  3155.                                             unsigned integer;                               /*      green           */
  3156.                                             unsigned integer;                               /*      blue            */
  3157.                                     };
  3158.                                     /* If rowBytes < 8 then data is unpacked,
  3159.                                        if >= 8, then data is packed */
  3160.     FillPixPatBits:                 hex string [($$BitField(FillPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) < 8) *
  3161.                                                 $$BitField(FillPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) +
  3162.                                                 ($$BitField(FillPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) >= 8) *
  3163.                                                 $$PackedSize(FillPixPatBits[$$ArrayIndex(OpCodes)],
  3164.                                                 $$BitField(FillPixPatpMapRowBytes[$$ArrayIndex(OpCodes)],0,13),
  3165.                                                 ($$BitField(FillPixPatBounds[$$ArrayIndex(OpCodes)],32,16)
  3166.                                                 - $$BitField(FillPixPatBounds[$$ArrayIndex(OpCodes)],0,16)))];
  3167.                                 
  3168.                                 case ditherPattern:
  3169.                                     key integer = 2;
  3170.                                     hex string [8];         /* old-style pattern    */
  3171.                                     unsigned integer;       /* RGB: red             */
  3172.                                     unsigned integer;       /*      green           */
  3173.                                     unsigned integer;       /*      blue            */
  3174.                             };
  3175.                         
  3176.                         case PnLocHFrac:
  3177.                             key integer = $0015;
  3178.                             unsigned hex integer;
  3179.                         
  3180.                         case ChExtra:
  3181.                             key integer = $0016;
  3182.                             integer;                        /* extra for each character */
  3183.                         
  3184.                         case AppleReserved0017:
  3185.                             key integer = $0017;
  3186.                             
  3187.                         case AppleReserved0018:
  3188.                             key integer = $0018;
  3189.                             
  3190.                         case AppleReserved0019:
  3191.                             key integer = $0019;
  3192.                         
  3193.                         case RGBFgCol:
  3194.                             key integer = $001A;
  3195.                             unsigned integer;       /* RGB: red             */
  3196.                             unsigned integer;       /*      green           */
  3197.                             unsigned integer;       /*      blue            */
  3198.                             
  3199.                         case RGBBkCol:
  3200.                             key integer = $001B;
  3201.                             unsigned integer;       /* RGB: red             */
  3202.                             unsigned integer;       /*      green           */
  3203.                             unsigned integer;       /*      blue            */
  3204.                             
  3205.                         case HiliteMode:
  3206.                             key integer = $001C;
  3207.                         
  3208.                         case HiliteColor:
  3209.                             key integer = $001D;
  3210.                             unsigned integer;       /* RGB: red             */
  3211.                             unsigned integer;       /*      green           */
  3212.                             unsigned integer;       /*      blue            */
  3213.                         
  3214.                         case DefHilite:
  3215.                             key integer = $001E;
  3216.                         
  3217.                         case OpColor:
  3218.                             key integer = $001F;
  3219.                             unsigned integer;       /* RGB: red             */
  3220.                             unsigned integer;       /*      green           */
  3221.                             unsigned integer;       /*      blue            */
  3222.                         
  3223.                         case Line:
  3224.                             key integer = $0020;
  3225.                             Point;                  /* pnLoc */
  3226.                             Point;                  /* newPt */
  3227.                             
  3228.                         case LineFrom:
  3229.                             key integer = $0021;
  3230.                             Point;                  /* newPt */
  3231.                         
  3232.                         case ShortLine:
  3233.                             key integer = $0022;
  3234.                             Point;                  /* pnLoc */
  3235.                             byte;                   /* dh */
  3236.                             byte;                   /* dv */
  3237.                         
  3238.                         case ShortLineFrom:
  3239.                             key integer = $0023;
  3240.                             byte;                   /* dh */
  3241.                             byte;                   /* dv */
  3242.                         
  3243.                         case AppleReserved0024:
  3244.                             key integer = $0024;
  3245.                 AR24:       unsigned integer = (AR24End - AR24) / 8 - 2;
  3246.                             hex string [$$Word(AR24)];
  3247.                 AR24End:
  3248.                         
  3249.                         case AppleReserved0025:
  3250.                             key integer = $0025;
  3251.                 AR25:       unsigned integer = (AR25End - AR25) / 8 - 2;
  3252.                             hex string [$$Word(AR25)];
  3253.                 AR25End:
  3254.                         
  3255.                         case AppleReserved0026:
  3256.                             key integer = $0026;
  3257.                 AR26:       unsigned integer = (AR26End - AR26) / 8 - 2;
  3258.                             hex string [$$Word(AR26)];
  3259.                 AR26End:
  3260.                         
  3261.                         case AppleReserved0027:
  3262.                             key integer = $0027;
  3263.                 AR27:       unsigned integer = (AR27End - AR27) / 8 - 2;
  3264.                             hex string [$$Word(AR27)];
  3265.                 AR27End:
  3266.                         
  3267.                         case LongText:
  3268.                             key integer = $0028;
  3269.                             Point;              /* txLoc */
  3270.                             pstring;            /* text */
  3271.                         
  3272.                         case DHText:
  3273.                             key integer = $0029;
  3274.                             byte;               /* dh */
  3275.                             pstring;            /* text */
  3276.  
  3277.                         case DVText:
  3278.                             key integer = $002A;
  3279.                             byte;               /* dv */
  3280.                             pstring;            /* text */
  3281.  
  3282.                         case DHDVText:
  3283.                             key integer = $002A;
  3284.                             byte;               /* dh */
  3285.                             byte;               /* dv */
  3286.                             pstring;            /* text */
  3287.  
  3288.                         case AppleReserved002C:
  3289.                             key integer = $002C;
  3290.                 AR2C:       unsigned integer = (AR2CEnd - AR2C) / 8 - 2;
  3291.                             hex string [$$Word(AR2C)];
  3292.                 AR2CEnd:
  3293.                         
  3294.                         case AppleReserved002D:
  3295.                             key integer = $002D;
  3296.                 AR2D:       unsigned integer = (AR2DEnd - AR2D) / 8 - 2;
  3297.                             hex string [$$Word(AR2D)];
  3298.                 AR2DEnd:
  3299.                         
  3300.                         case AppleReserved002E:
  3301.                             key integer = $002E;
  3302.                 AR2E:       unsigned integer = (AR2EEnd - AR2E) / 8 - 2;
  3303.                             hex string [$$Word(AR2E)];
  3304.                 AR2EEnd:
  3305.                         
  3306.                         case AppleReserved002F:
  3307.                             key integer = $002F;
  3308.                 AR2F:       unsigned integer = (AR2FEnd - AR2F) / 8 - 2;
  3309.                             hex string [$$Word(AR2F)];
  3310.                 AR2FEnd:
  3311.                         
  3312.                         case FrameRect:
  3313.                             key integer = $0030;
  3314.                             Rect;
  3315.                             
  3316.                         case PaintRect:
  3317.                             key integer = $0031;
  3318.                             Rect;
  3319.                             
  3320.                         case EraseRect:
  3321.                             key integer = $0032;
  3322.                             Rect;
  3323.                             
  3324.                         case InvertRect:
  3325.                             key integer = $0033;
  3326.                             Rect;
  3327.                             
  3328.                         case FillRect:
  3329.                             key integer = $0034;
  3330.                             Rect;
  3331.                             
  3332.                         case AppleReserved0035:
  3333.                             key integer = $0035;
  3334.                             Rect;
  3335.                             
  3336.                         case AppleReserved0036:
  3337.                             key integer = $0036;
  3338.                             Rect;
  3339.                             
  3340.                         case AppleReserved0037:
  3341.                             key integer = $0037;
  3342.                             Rect;
  3343.                         
  3344.                         case FrameSameRect:
  3345.                             key integer = $0038;
  3346.                         
  3347.                         case PaintSameRect:
  3348.                             key integer = $0039;
  3349.                         
  3350.                         case EraseSameRect:
  3351.                             key integer = $003A;
  3352.                         
  3353.                         case InvertSameRect:
  3354.                             key integer = $003B;
  3355.                         
  3356.                         case FillSameRect:
  3357.                             key integer = $003C;
  3358.                         
  3359.                         case AppleReserved003D:
  3360.                             key integer = $003D;
  3361.                         
  3362.                         case AppleReserved003E:
  3363.                             key integer = $003E;
  3364.                         
  3365.                         case AppleReserved003F:
  3366.                             key integer = $003F;
  3367.                         
  3368.                         case FrameRRect:
  3369.                             key integer = $0040;
  3370.                             Rect;
  3371.                             
  3372.                         case PaintRRect:
  3373.                             key integer = $0041;
  3374.                             Rect;
  3375.                             
  3376.                         case EraseRRect:
  3377.                             key integer = $0042;
  3378.                             Rect;
  3379.                             
  3380.                         case InvertRRect:
  3381.                             key integer = $0043;
  3382.                             Rect;
  3383.                             
  3384.                         case FillRRect:
  3385.                             key integer = $0044;
  3386.                             Rect;
  3387.                             
  3388.                         case AppleReserved0045:
  3389.                             key integer = $0045;
  3390.                             Rect;
  3391.                             
  3392.                         case AppleReserved0046:
  3393.                             key integer = $0046;
  3394.                             Rect;
  3395.                             
  3396.                         case AppleReserved0047:
  3397.                             key integer = $0047;
  3398.                             Rect;
  3399.                         
  3400.                         case FrameSameRRect:
  3401.                             key integer = $0048;
  3402.                         
  3403.                         case PaintSameRRect:
  3404.                             key integer = $0049;
  3405.                         
  3406.                         case EraseSameRRect:
  3407.                             key integer = $004A;
  3408.                         
  3409.                         case InvertSameRRect:
  3410.                             key integer = $004B;
  3411.                         
  3412.                         case FillSameRRect:
  3413.                             key integer = $004C;
  3414.                         
  3415.                         case AppleReserved004D:
  3416.                             key integer = $004D;
  3417.                         
  3418.                         case AppleReserved004E:
  3419.                             key integer = $004E;
  3420.                         
  3421.                         case AppleReserved004F:
  3422.                             key integer = $004F;
  3423.                         
  3424.                         case FrameOval:
  3425.                             key integer = $0050;
  3426.                             Rect;
  3427.                             
  3428.                         case PaintOval:
  3429.                             key integer = $0051;
  3430.                             Rect;
  3431.                             
  3432.                         case EraseOval:
  3433.                             key integer = $0052;
  3434.                             Rect;
  3435.                             
  3436.                         case InvertOval:
  3437.                             key integer = $0053;
  3438.                             Rect;
  3439.                             
  3440.                         case FillOval:
  3441.                             key integer = $0054;
  3442.                             Rect;
  3443.                             
  3444.                         case AppleReserved0055:
  3445.                             key integer = $0055;
  3446.                             Rect;
  3447.                             
  3448.                         case AppleReserved0056:
  3449.                             key integer = $0056;
  3450.                             Rect;
  3451.                             
  3452.                         case AppleReserved0057:
  3453.                             key integer = $0057;
  3454.                             Rect;
  3455.                         
  3456.                         case FrameSameOval:
  3457.                             key integer = $0058;
  3458.                         
  3459.                         case PaintSameOval:
  3460.                             key integer = $0059;
  3461.                         
  3462.                         case EraseSameOval:
  3463.                             key integer = $005A;
  3464.                         
  3465.                         case InvertSameOval:
  3466.                             key integer = $005B;
  3467.                         
  3468.                         case FillSameOval:
  3469.                             key integer = $005C;
  3470.                         
  3471.                         case AppleReserved005D:
  3472.                             key integer = $005D;
  3473.                         
  3474.                         case AppleReserved005E:
  3475.                             key integer = $005E;
  3476.                         
  3477.                         case frameArc:
  3478.                             key integer = $0060;
  3479.                             Rect;
  3480.                             integer;                /* startAngle */
  3481.                             integer;                /* arcAngle */
  3482.                         
  3483.                         case paintArc:
  3484.                             key integer = $0061;
  3485.                             Rect;
  3486.                             integer;                /* startAngle */
  3487.                             integer;                /* arcAngle */
  3488.                         
  3489.                         case eraseArc:
  3490.                             key integer = $0062;
  3491.                             Rect;
  3492.                             integer;                /* startAngle */
  3493.                             integer;                /* arcAngle */
  3494.                         
  3495.                         case invertArc:
  3496.                             key integer = $0063;
  3497.                             Rect;
  3498.                             integer;                /* startAngle */
  3499.                             integer;                /* arcAngle */
  3500.                         
  3501.                         case fillArc:
  3502.                             key integer = $0064;
  3503.                             Rect;
  3504.                             integer;                /* startAngle */
  3505.                             integer;                /* arcAngle */
  3506.                         
  3507.                         case AppleReserved0065:
  3508.                             key integer = $0065;
  3509.                             Rect;
  3510.                             integer;                /* startAngle */
  3511.                             integer;                /* arcAngle */
  3512.                         
  3513.                         case AppleReserved0066:
  3514.                             key integer = $0066;
  3515.                             Rect;
  3516.                             integer;                /* startAngle */
  3517.                             integer;                /* arcAngle */
  3518.                         
  3519.                         case AppleReserved0067:
  3520.                             key integer = $0067;
  3521.                             Rect;
  3522.                             integer;                /* startAngle */
  3523.                             integer;                /* arcAngle */
  3524.                         
  3525.                         case frameSameArc:
  3526.                             key integer = $0068;
  3527.                             integer;                /* startAngle */
  3528.                             integer;                /* arcAngle */
  3529.  
  3530.                         case paintSameArc:
  3531.                             key integer = $0069;
  3532.                             integer;                /* startAngle */
  3533.                             integer;                /* arcAngle */
  3534.  
  3535.                         case eraseSameArc:
  3536.                             key integer = $006A;
  3537.                             integer;                /* startAngle */
  3538.                             integer;                /* arcAngle */
  3539.  
  3540.                         case invertSameArc:
  3541.                             key integer = $006B;
  3542.                             integer;                /* startAngle */
  3543.                             integer;                /* arcAngle */
  3544.  
  3545.                         case fillSameArc:
  3546.                             key integer = $006C;
  3547.                             integer;                /* startAngle */
  3548.                             integer;                /* arcAngle */
  3549.                         
  3550.                         case AppleReserved006D:
  3551.                             key integer = $006D;
  3552.                             integer;                /* startAngle */
  3553.                             integer;                /* arcAngle */
  3554.                         
  3555.                         case AppleReserved006E:
  3556.                             key integer = $006E;
  3557.                             integer;                /* startAngle */
  3558.                             integer;                /* arcAngle */
  3559.                         
  3560.                         case AppleReserved006F:
  3561.                             key integer = $006F;
  3562.                             integer;                /* startAngle */
  3563.                             integer;                /* arcAngle */
  3564.                         
  3565.                         case framePoly:
  3566.                             key integer = $0070;
  3567.                             integer = $$CountOf(framePoly) * 4 + 10;
  3568.                             Rect;                   /* enclosing rectangle */
  3569.                             array framePoly {
  3570.                                 Point;
  3571.                             };
  3572.                         
  3573.                         case paintPoly:
  3574.                             key integer = $0071;
  3575.                             integer = $$CountOf(framePoly) * 4 + 10;
  3576.                             Rect;                   /* enclosing rectangle */
  3577.                             array framePoly {
  3578.                                 Point;
  3579.                             };
  3580.                         
  3581.                         case erasePoly:
  3582.                             key integer = $0072;
  3583.                             integer = $$CountOf(framePoly) * 4 + 10;
  3584.                             Rect;                   /* enclosing rectangle */
  3585.                             array framePoly {
  3586.                                 Point;
  3587.                             };
  3588.                         
  3589.                         case invertPoly:
  3590.                             key integer = $0073;
  3591.                             integer = $$CountOf(framePoly) * 4 + 10;
  3592.                             Rect;                   /* enclosing rectangle */
  3593.                             array framePoly {
  3594.                                 Point;
  3595.                             };
  3596.                         
  3597.                         case fillPoly:
  3598.                             key integer = $0074;
  3599.                             integer = $$CountOf(framePoly) * 4 + 10;
  3600.                             Rect;                   /* enclosing rectangle */
  3601.                             array framePoly {
  3602.                                 Point;
  3603.                             };
  3604.                         
  3605.                         case AppleReserved0075:
  3606.                             key integer = $0075;
  3607.                             integer = $$CountOf(framePoly) * 4 + 10;
  3608.                             Rect;                   /* enclosing rectangle */
  3609.                             array framePoly {
  3610.                                 Point;
  3611.                             };
  3612.                         
  3613.                         case AppleReserved0076:
  3614.                             key integer = $0076;
  3615.                             integer = $$CountOf(framePoly) * 4 + 10;
  3616.                             Rect;                   /* enclosing rectangle */
  3617.                             array framePoly {
  3618.                                 Point;
  3619.                             };
  3620.                         
  3621.                         case AppleReserved0077:
  3622.                             key integer = $0077;
  3623.                             integer = $$CountOf(framePoly) * 4 + 10;
  3624.                             Rect;                   /* enclosing rectangle */
  3625.                             array framePoly {
  3626.                                 Point;
  3627.                             };
  3628.                         
  3629.                         case frameSamePoly:
  3630.                             key integer = $0078;
  3631.     
  3632.                         case paintSamePoly:
  3633.                             key integer = $0079;
  3634.     
  3635.                         case eraseSamePoly:
  3636.                             key integer = $007A;
  3637.     
  3638.                         case invertSamePoly:
  3639.                             key integer = $007B;
  3640.     
  3641.                         case fillSamePoly:
  3642.                             key integer = $007C;
  3643.     
  3644.                         case AppleReserved007D:
  3645.                             key integer = $007D;
  3646.     
  3647.                         case AppleReserved007E:
  3648.                             key integer = $007E;
  3649.     
  3650.                         case AppleReserved007F:
  3651.                             key integer = $007F;
  3652.     
  3653.                         case frameRgn:
  3654.                             key integer = $0080;
  3655. æC 
  3656.  
  3657. æKY BitsRectpMapRowBytes
  3658. æFr Pict.r
  3659. æT 
  3660. æD     frameRgnStart2:         integer = (frameRgnEnd2[$$ArrayIndex(OpCodes)] - frameRgnStart2[$$ArrayIndex(OpCodes)]) >> 3;
  3661.                             Rect;               /* region's enclosing rect */
  3662.                             hex string [$$Word(frameRgnStart2[$$ArrayIndex(OpCodes)]) - 10];
  3663.     frameRgnEnd2:
  3664.                         case paintRgn:
  3665.                             key integer = $0081;
  3666.     paintRgnStart2:         integer = (paintRgnEnd2[$$ArrayIndex(OpCodes)] - paintRgnStart2[$$ArrayIndex(OpCodes)]) >> 3;
  3667.                             Rect;               /* region's enclosing rect */
  3668.                             hex string [$$Word(paintRgnStart2[$$ArrayIndex(OpCodes)]) - 10];
  3669.     paintRgnEnd2:
  3670.                         case eraseRgn:
  3671.                             key integer = $0082;
  3672.     eraseRgnStart2:         integer = (eraseRgnEnd2[$$ArrayIndex(OpCodes)] - eraseRgnStart2[$$ArrayIndex(OpCodes)]) >> 3;
  3673.                             Rect;               /* region's enclosing rect */
  3674.                             hex string [$$Word(eraseRgnStart2[$$ArrayIndex(OpCodes)]) - 10];
  3675.     eraseRgnEnd2:
  3676.                         case invertRgn:
  3677.                             key integer = $0083;
  3678.     invertRgnStart2:        integer = (invertRgnEnd2[$$ArrayIndex(OpCodes)] - invertRgnStart2[$$ArrayIndex(OpCodes)]) >> 3;
  3679.                             Rect;               /* region's enclosing rect */
  3680.                             hex string [$$Word(invertRgnStart2[$$ArrayIndex(OpCodes)]) - 10];
  3681.     invertRgnEnd2:
  3682.                         case fillRgn:
  3683.                             key integer = $0084;
  3684.     fillRgnStart2:          integer = (fillRgnEnd2[$$ArrayIndex(OpCodes)] - fillRgnStart2[$$ArrayIndex(OpCodes)]) >> 3;
  3685.                             Rect;               /* region's enclosing rect */
  3686.                             hex string [$$Word(fillRgnStart2[$$ArrayIndex(OpCodes)]) - 10];
  3687.     fillRgnEnd2:
  3688.                         case AppleReserved0085:
  3689.                             key integer = $0085;
  3690.     AppleReserved0085Start:integer = (AppleReserved0085End[$$ArrayIndex(OpCodes)] - AppleReserved0085Start[$$ArrayIndex(OpCodes)]) >> 3;
  3691.                             Rect;               /* region's enclosing rect */
  3692.                             hex string [$$Word(AppleReserved0085Start[$$ArrayIndex(OpCodes)]) - 10];
  3693.     AppleReserved0085End:
  3694.                         case AppleReserved0086:
  3695.                             key integer = $0086;
  3696.     AppleReserved0086Start: integer = (AppleReserved0086End[$$ArrayIndex(OpCodes)] - AppleReserved0086Start[$$ArrayIndex(OpCodes)]) >> 3;
  3697.                             Rect;               /* region's enclosing rect */
  3698.                             hex string [$$Word(AppleReserved0086Start[$$ArrayIndex(OpCodes)]) - 10];
  3699.     AppleReserved0086End:
  3700.                         case AppleReserved0087:
  3701.                             key integer = $0087;
  3702.     AppleReserved0087Start: integer = (AppleReserved0087End[$$ArrayIndex(OpCodes)] - AppleReserved0087Start[$$ArrayIndex(OpCodes)]) >> 3;
  3703.                             Rect;               /* region's enclosing rect */
  3704.                             hex string [$$Word(AppleReserved0087Start[$$ArrayIndex(OpCodes)]) - 10];
  3705.     AppleReserved0087End:
  3706.                         case frameSameRgn:
  3707.                             key integer = $0088;
  3708.  
  3709.                         case paintSameRgn:
  3710.                             key integer = $0089;
  3711.  
  3712.                         case eraseSameRgn:
  3713.                             key integer = $008A;
  3714.  
  3715.                         case invertSameRgn:
  3716.                             key integer = $008B;
  3717.  
  3718.                         case fillSameRgn:
  3719.                             key integer = $008C;
  3720.  
  3721.                         case AppleReserved008D:
  3722.                             key integer = $008D;
  3723.  
  3724.                         case AppleReserved008E:
  3725.                             key integer = $008E;
  3726.  
  3727.                         case AppleReserved008F:
  3728.                             key integer = $008F;
  3729.  
  3730.                         case BitsRect:
  3731.                             key integer = $0090;
  3732.                             unsigned bitstring[1] = 1;                              /* New pixMap flag      */
  3733.                             unsigned bitstring[2] = 0;                              /* Must be 0            */
  3734.     BitsRectpMapRowBytes:   unsigned bitstring[13];                                 /* Offset to next row   */
  3735.     BitsRectBounds2:        rect;                                                   /* Bitmap bounds        */
  3736.                             integer;                                                /* pixMap vers number   */
  3737.                             integer unpacked;                                       /* Packing format       */
  3738.                             unsigned longint;                                       /* Size of pixel data   */
  3739.                             unsigned hex longint;                                   /* h. resolution (ppi) (fixed) */
  3740.                             unsigned hex longint;                                   /* v. resolution (ppi) (fixed) */
  3741.                             integer         chunky, chunkyPlanar, planar;           /* Pixel storage format */
  3742.                             integer;                                                /* # bits in pixel      */
  3743.                             integer;                                                /* # components in pixel*/
  3744.                             integer;                                                /* # bits per field     */
  3745.                             unsigned longint;                                       /* Offset to next plane */
  3746.                             unsigned longint;                                       /* Offset to color table*/
  3747.                             fill long;                                              /* Reserved             */
  3748.                             /* Color Table */
  3749.                             unsigned hex longint;                                   /* ctSeed               */
  3750.                             integer;                                                /* ctFlags              */
  3751.                             integer = $$Countof(ColorSpec) - 1;                     /* ctSize               */
  3752.                             wide array ColorSpec {
  3753.                                     integer;                                        /* value                */
  3754.                                     unsigned integer;                               /* RGB: red             */
  3755.                                     unsigned integer;                               /*      green           */
  3756.                                     unsigned integer;                               /*      blue            */
  3757.                             };
  3758.                             Rect;                       /* srcRect */
  3759.                             Rect;                       /* destRect */
  3760.                             integer     srcCopy, srcOr, srcXor, srcBic, /* mode */
  3761.                                         notSrcCopy, notSrcOr, notSrcXor,
  3762.                                         notSrcBic, patCopy, patOr, patXor,
  3763.                                         patBic, notPatCopy, notPatOr, notPatBic,
  3764.                                         blend = 32, addPin, addOver, subPin,
  3765.                                         adMax = 37, subOver, adMin;
  3766.     BitsRectBits:           hex string [$$BitField(BitsRectpMapRowBytes[$$ArrayIndex(OpCodes)],0,13) *
  3767.                                         ($$BitField(BitsRectBounds2[$$ArrayIndex(OpCodes)],32,16)
  3768.                                         - $$BitField(BitsRectBounds2[$$ArrayIndex(OpCodes)],0,16))];
  3769.                         
  3770.                         
  3771.                         case BitsRgn:
  3772.                             key integer = $0091;
  3773.                             unsigned bitstring[1] = 1;                              /* New pixMap flag      */
  3774.                             unsigned bitstring[2] = 0;                              /* Must be 0            */
  3775.     BitsRgnpMapRowBytes:    unsigned bitstring[13];                                 /* Offset to next row   */
  3776.     BitsRgnBounds2:         rect;                                                   /* Bitmap bounds        */
  3777.                             integer;                                                /* pixMap vers number   */
  3778.                             integer unpacked;                                       /* Packing format       */
  3779.                             unsigned longint;                                       /* Size of pixel data   */
  3780.                             unsigned hex longint;                                   /* h. resolution (ppi) (fixed) */
  3781.                             unsigned hex longint;                                   /* v. resolution (ppi) (fixed) */
  3782.                             integer         chunky, chunkyPlanar, planar;           /* Pixel storage format */
  3783.                             integer;                                                /* # bits in pixel      */
  3784.                             integer;                                                /* # components in pixel*/
  3785.                             integer;                                                /* # bits per field     */
  3786.                             unsigned longint;                                       /* Offset to next plane */
  3787.                             unsigned longint;                                       /* Offset to color table*/
  3788.                             fill long;                                              /* Reserved             */
  3789.                             /* Color Table */
  3790.                             unsigned hex longint;                                   /* ctSeed               */
  3791.                             integer;                                                /* ctFlags              */
  3792.                             integer = $$Countof(ColorSpec) - 1;                     /* ctSize               */
  3793.                             wide array ColorSpec {
  3794.                                     integer;                                        /* value                */
  3795.                                     unsigned integer;                               /* RGB: red             */
  3796.                                     unsigned integer;                               /*      green           */
  3797.                                     unsigned integer;                               /*      blue            */
  3798.                             };
  3799.                             Rect;                       /* srcRect */
  3800.                             Rect;                       /* destRect */
  3801.                             integer     srcCopy, srcOr, srcXor, srcBic, /* mode */
  3802.                                         notSrcCopy, notSrcOr, notSrcXor,
  3803.                                         notSrcBic, patCopy, patOr, patXor,
  3804.                                         patBic, notPatCopy, notPatOr, notPatBic,
  3805.                                         blend = 32, addPin, addOver, subPin,
  3806.                                         adMax = 37, subOver, adMin;
  3807.     BitsRgnStart2:          integer = (BitsRgnEnd2[$$ArrayIndex(OpCodes)] - BitsRgnStart2[$$ArrayIndex(OpCodes)]) >> 3;
  3808.                             Rect;               /* region's enclosing rect */
  3809.                             hex string [$$Word(BitsRgnStart2[$$ArrayIndex(OpCodes)]) - 10];
  3810.     BitsRgnEnd2:            hex string [$$PackedSize(BitsRgnEnd2[$$ArrayIndex(OpCodes)],
  3811.                                         $$BitField(BitsRgnpMapRowBytes[$$ArrayIndex(OpCodes)],0,13),
  3812.                                         ($$BitField(BitsRgnBounds2[$$ArrayIndex(OpCodes)],32,16)
  3813.                                         - $$BitField(BitsRgnBounds2[$$ArrayIndex(OpCodes)],0,16)))];
  3814.  
  3815.                         case AppleReserved0092:
  3816.                             key integer = $0092;
  3817. æC 
  3818.  
  3819. æKY AppleReserved0092Start
  3820. æFr Pict.r
  3821. æT 
  3822. æD     AppleReserved0092Start: unsigned integer = (AppleReserved0092End[$$ArrayIndex(OpCodes)] - AppleReserved0092Start[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  3823.                             hex string [$$Word(AppleReserved0092Start[$$ArrayIndex(OpCodes)])];
  3824.     AppleReserved0092End:
  3825.                         case AppleReserved0093:
  3826.                             key integer = $0093;
  3827.     AppleReserved0093Start: unsigned integer = (AppleReserved0093End[$$ArrayIndex(OpCodes)] - AppleReserved0093Start[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  3828.                             hex string [$$Word(AppleReserved0093Start[$$ArrayIndex(OpCodes)])];
  3829.     AppleReserved0093End:
  3830.                         case AppleReserved0094:
  3831.                             key integer = $0094;
  3832.     AppleReserved0094Start: unsigned integer = (AppleReserved0094End[$$ArrayIndex(OpCodes)] - AppleReserved0094Start[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  3833.                             hex string [$$Word(AppleReserved0094Start[$$ArrayIndex(OpCodes)])];
  3834.     AppleReserved0094End:
  3835.                         case AppleReserved0095:
  3836.                             key integer = $0095;
  3837.     AppleReserved0095Start: unsigned integer = (AppleReserved0095End[$$ArrayIndex(OpCodes)] - AppleReserved0095Start[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  3838.                             hex string [$$Word(AppleReserved0095Start[$$ArrayIndex(OpCodes)])];
  3839.     AppleReserved0095End:
  3840.                         case AppleReserved0096:
  3841.                             key integer = $0096;
  3842.     AppleReserved0096Start: unsigned integer = (AppleReserved0096End[$$ArrayIndex(OpCodes)] - AppleReserved0096Start[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  3843.                             hex string [$$Word(AppleReserved0096Start[$$ArrayIndex(OpCodes)])];
  3844.     AppleReserved0096End:
  3845.                         case AppleReserved0097:
  3846.                             key integer = $0097;
  3847.     AppleReserved0097Start: unsigned integer = (AppleReserved0097End[$$ArrayIndex(OpCodes)] - AppleReserved0097Start[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  3848.                             hex string [$$Word(AppleReserved0097Start[$$ArrayIndex(OpCodes)])];
  3849.     AppleReserved0097End:
  3850.                         case PackBitsRect:
  3851.                             key integer = $0098;
  3852.                             unsigned bitstring[1] = 1;                              /* New pixMap flag      */
  3853.                             unsigned bitstring[2] = 0;                              /* Must be 0            */
  3854.     PackBitsRectpMapRowBytes:unsigned bitstring[13];                                    /* Offset to next row   */
  3855.     PackBitsRectBounds2:    rect;                                                   /* Bitmap bounds        */
  3856.                             integer;                                                /* pixMap vers number   */
  3857.                             integer unpacked;                                       /* Packing format       */
  3858.                             unsigned longint;                                       /* Size of pixel data   */
  3859.                             unsigned hex longint;                                   /* h. resolution (ppi) (fixed) */
  3860.                             unsigned hex longint;                                   /* v. resolution (ppi) (fixed) */
  3861.                             integer         chunky, chunkyPlanar, planar;           /* Pixel storage format */
  3862.                             integer;                                                /* # bits in pixel      */
  3863.                             integer;                                                /* # components in pixel*/
  3864.                             integer;                                                /* # bits per field     */
  3865.                             unsigned longint;                                       /* Offset to next plane */
  3866.                             unsigned longint;                                       /* Offset to color table*/
  3867.                             fill long;                                              /* Reserved             */
  3868.                             /* Color Table */
  3869.                             unsigned hex longint;                                   /* ctSeed               */
  3870.                             integer;                                                /* ctFlags              */
  3871.                             integer = $$Countof(ColorSpec) - 1;                     /* ctSize               */
  3872.                             wide array ColorSpec {
  3873.                                     integer;                                        /* value                */
  3874.                                     unsigned integer;                               /* RGB: red             */
  3875.                                     unsigned integer;                               /*      green           */
  3876.                                     unsigned integer;                               /*      blue            */
  3877.                             };
  3878.                             Rect;                       /* srcRect */
  3879.                             Rect;                       /* destRect */
  3880.                             integer     srcCopy, srcOr, srcXor, srcBic, /* mode */
  3881.                                         notSrcCopy, notSrcOr, notSrcXor,
  3882.                                         notSrcBic, patCopy, patOr, patXor,
  3883.                                         patBic, notPatCopy, notPatOr, notPatBic,
  3884.                                         blend = 32, addPin, addOver, subPin,
  3885.                                         adMax = 37, subOver, adMin;
  3886. æC 
  3887.  
  3888. æKY PackBitsRectBits
  3889. æFr Pict.r
  3890. æT 
  3891. æD     PackBitsRectBits:       hex string [$$PackedSize(PackBitsRectBits[$$ArrayIndex(OpCodes)],
  3892.                                         $$BitField(PackBitsRectpMapRowBytes[$$ArrayIndex(OpCodes)],0,13),
  3893.                                         ($$BitField(PackBitsRectBounds2[$$ArrayIndex(OpCodes)],32,16)
  3894.                                         - $$BitField(PackBitsRectBounds2[$$ArrayIndex(OpCodes)],0,16)))];
  3895.                         
  3896.                         case PackBitsRgn:
  3897.                             key integer = $0099;
  3898.                             unsigned bitstring[1] = 1;                              /* New pixMap flag      */
  3899.                             unsigned bitstring[2] = 0;                              /* Must be 0            */
  3900.     PackBitsRgnpMapRowBytes:unsigned bitstring[13];                                 /* Offset to next row   */
  3901.     PackBitsRgnBounds2: rect;                                                       /* Bitmap bounds        */
  3902.                             integer;                                                /* pixMap vers number   */
  3903.                             integer unpacked;                                       /* Packing format       */
  3904.                             unsigned longint;                                       /* Size of pixel data   */
  3905.                             unsigned hex longint;                                   /* h. resolution (ppi) (fixed) */
  3906.                             unsigned hex longint;                                   /* v. resolution (ppi) (fixed) */
  3907.                             integer         chunky, chunkyPlanar, planar;           /* Pixel storage format */
  3908.                             integer;                                                /* # bits in pixel      */
  3909.                             integer;                                                /* # components in pixel*/
  3910.                             integer;                                                /* # bits per field     */
  3911.                             unsigned longint;                                       /* Offset to next plane */
  3912.                             unsigned longint;                                       /* Offset to color table*/
  3913.                             fill long;                                              /* Reserved             */
  3914.                             /* Color Table */
  3915.                             unsigned hex longint;                                   /* ctSeed               */
  3916.                             integer;                                                /* ctFlags              */
  3917.                             integer = $$Countof(ColorSpec) - 1;                     /* ctSize               */
  3918.                             wide array ColorSpec {
  3919.                                     integer;                                        /* value                */
  3920.                                     unsigned integer;                               /* RGB: red             */
  3921.                                     unsigned integer;                               /*      green           */
  3922.                                     unsigned integer;                               /*      blue            */
  3923.                             };
  3924.                             Rect;                       /* srcRect */
  3925.                             Rect;                       /* destRect */
  3926.                             integer     srcCopy, srcOr, srcXor, srcBic, /* mode */
  3927.                                         notSrcCopy, notSrcOr, notSrcXor,
  3928.                                         notSrcBic, patCopy, patOr, patXor,
  3929.                                         patBic, notPatCopy, notPatOr, notPatBic,
  3930.                                         blend = 32, addPin, addOver, subPin,
  3931.                                         adMax = 37, subOver, adMin;
  3932.     packBitsRgnStart2:      integer = (packBitsRgnEnd2[$$ArrayIndex(OpCodes)] - packBitsRgnStart2[$$ArrayIndex(OpCodes)]) >> 3;
  3933.                             Rect;               /* region's enclosing rect */
  3934.                             hex string [$$Word(packBitsRgnStart2[$$ArrayIndex(OpCodes)]) - 10];
  3935.     packBitsRgnEnd2:        hex string [$$PackedSize(packBitsRgnEnd2[$$ArrayIndex(OpCodes)],
  3936.                                         $$BitField(PackBitsRgnpMapRowBytes[$$ArrayIndex(OpCodes)],0,13),
  3937.                                         ($$BitField(PackBitsRgnBounds2[$$ArrayIndex(OpCodes)],32,16)
  3938.                                         - $$BitField(PackBitsRgnBounds2[$$ArrayIndex(OpCodes)],0,16)))];
  3939.  
  3940.                         case AppleReserved009A:
  3941.                             key integer = $009A;
  3942.     AppleReserved009AStart: unsigned integer = (AppleReserved009AEnd[$$ArrayIndex(OpCodes)] - AppleReserved009AStart[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  3943.                             hex string [$$Word(AppleReserved009AStart[$$ArrayIndex(OpCodes)])];
  3944.     AppleReserved009AEnd:
  3945.                         case AppleReserved009B:
  3946.                             key integer = $009B;
  3947.     AppleReserved009BStart: unsigned integer = (AppleReserved009BEnd[$$ArrayIndex(OpCodes)] - AppleReserved009BStart[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  3948.                             hex string [$$Word(AppleReserved009BStart[$$ArrayIndex(OpCodes)])];
  3949.     AppleReserved009BEnd:
  3950.                         case AppleReserved009C:
  3951.                             key integer = $009C;
  3952.     AppleReserved009CStart: unsigned integer = (AppleReserved009CEnd[$$ArrayIndex(OpCodes)] - AppleReserved009CStart[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  3953.                             hex string [$$Word(AppleReserved009CStart[$$ArrayIndex(OpCodes)])];
  3954.     AppleReserved009CEnd:
  3955.                         case AppleReserved009D:
  3956.                             key integer = $009D;
  3957.     AppleReserved009DStart: unsigned integer = (AppleReserved009DEnd[$$ArrayIndex(OpCodes)] - AppleReserved009DStart[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  3958.                             hex string [$$Word(AppleReserved009DStart[$$ArrayIndex(OpCodes)])];
  3959.     AppleReserved009DEnd:
  3960.                         case AppleReserved009E:
  3961.                             key integer = $009E;
  3962.     AppleReserved009EStart: unsigned integer = (AppleReserved009EEnd[$$ArrayIndex(OpCodes)] - AppleReserved009EStart[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  3963.                             hex string [$$Word(AppleReserved009EStart[$$ArrayIndex(OpCodes)])];
  3964.     AppleReserved009EEnd:
  3965.                         case AppleReserved009F:
  3966.                             key integer = $009F;
  3967.     AppleReserved009FStart: unsigned integer = (AppleReserved009FEnd[$$ArrayIndex(OpCodes)] - AppleReserved009FStart[$$ArrayIndex(OpCodes)]) >> 3 - 2;
  3968.                             hex string [$$Word(AppleReserved009FStart[$$ArrayIndex(OpCodes)])];
  3969.     AppleReserved009FEnd:
  3970.                         case ShortComment:
  3971.                             key integer = $00A0;
  3972.                             integer;                            /* comment kind */
  3973.                         
  3974.                         case LongComment:
  3975.                             key integer = $00A1;
  3976.                             integer;                            /* comment kind */
  3977.     longCommentStart2:      integer = (longCommentEnd2[$$ArrayIndex(OpCodes)] - longCommentStart2[$$ArrayIndex(OpCodes)] - 16) >> 3;
  3978.                             hex string [$$Word(longCommentStart2[$$ArrayIndex(OpCodes)])];
  3979.     longCommentEnd2:
  3980.                         case OpEndPic:
  3981.                             key integer = $00FF;
  3982.                         
  3983.                         case HeaderOp:
  3984.                             key integer = $0C00;
  3985.                             longint     Version2 = -1;
  3986.                             /* Fixed point bounding box */
  3987.                             unsigned hex longint;
  3988.                             unsigned hex longint;
  3989.                             unsigned hex longint;
  3990.                             unsigned hex longint;
  3991.                             longint     Version2 = -1;      /* Reserved */
  3992.                         
  3993.                     };
  3994.                     align word;
  3995.                 };
  3996.         };
  3997.     endOfPict:
  3998. };
  3999.  
  4000. #endif __PICT.R__
  4001.  
  4002.  
  4003.  
  4004. æKY SIOW.h
  4005. æKL 
  4006. __kErrStrings
  4007. __kMinSize
  4008. __kPrefSize
  4009. __mApple
  4010. __mEdit
  4011. __mFile
  4012. __mFont
  4013. __mSize
  4014. __rAboutAlert
  4015. __rDocWindow
  4016. __rHScroll
  4017. __rMenuBar
  4018. __rSaveAlert
  4019. __rUserAlert
  4020. __rVScroll
  4021.  
  4022. æKY __kPrefSize
  4023. æFr SIOW.h
  4024. æT #define
  4025. æD #ifndef __kPrefSize
  4026. #define __kPrefSize 122 /*Default max app size*/
  4027. æC 
  4028.  
  4029. æKY __kMinSize
  4030. æFr SIOW.h
  4031. æT #define
  4032. æD #endif
  4033. #ifndef __kMinSize
  4034. #define __kMinSize 38 /*Default min app size*/
  4035. æC 
  4036.  
  4037. æKY __mApple
  4038. æFr SIOW.h
  4039. æT #define
  4040. æD #endif
  4041.     
  4042. /* The following constants are used to identify menus and their items. */
  4043. /* NOTE: resources IDs 20000-20010 are reserved fur use by SIOW */
  4044.  
  4045. #define __mApple 20000 /*File menu*/
  4046. æC 
  4047.  
  4048. æKY __mFile
  4049. æFr SIOW.h
  4050. æT #define
  4051. æD #define __mFile 20001 /*File menu*/
  4052. æC 
  4053.  
  4054. æKY __mEdit
  4055. æFr SIOW.h
  4056. æT #define
  4057. æD #define __mEdit 20002 /*Edit menu*/
  4058. æC 
  4059.  
  4060. æKY __mFont
  4061. æFr SIOW.h
  4062. æT #define
  4063. æD #define __mFont 20003 /*Font menu*/
  4064. æC 
  4065.  
  4066. æKY __mSize
  4067. æFr SIOW.h
  4068. æT #define
  4069. æD #define __mSize 20004 /*Font menu*/
  4070. æC 
  4071.  
  4072. æKY __rMenuBar
  4073. æFr SIOW.h
  4074. æT #define
  4075. æD #define __rMenuBar 20000 /*application's menu bar*/
  4076. æC 
  4077.  
  4078. æKY __rAboutAlert
  4079. æFr SIOW.h
  4080. æT #define
  4081. æD #define __rAboutAlert 20000 /*about alert*/
  4082. æC 
  4083.  
  4084. æKY __rUserAlert
  4085. æFr SIOW.h
  4086. æT #define
  4087. æD #define __rUserAlert 20001 /*user error alert*/
  4088. æC 
  4089.  
  4090. æKY __rSaveAlert
  4091. æFr SIOW.h
  4092. æT #define
  4093. æD #define __rSaveAlert 20002 /*save changes alert*/
  4094. æC 
  4095.  
  4096. æKY __rDocWindow
  4097. æFr SIOW.h
  4098. æT #define
  4099. æD #define __rDocWindow 20000 /*applications's window*/
  4100. æC 
  4101.  
  4102. æKY __rVScroll
  4103. æFr SIOW.h
  4104. æT #define
  4105. æD #define __rVScroll 20000 /*vertical scrollbar control*/
  4106. æC 
  4107.  
  4108. æKY __rHScroll
  4109. æFr SIOW.h
  4110. æT #define
  4111. æD #define __rHScroll 20001 /*horizontal scrollbar control*/
  4112. æC 
  4113.  
  4114. æKY __kErrStrings
  4115. æFr SIOW.h
  4116. æT #define
  4117. æD #define __kErrStrings 20000 /*error string list*/
  4118. æC 
  4119.  
  4120.  
  4121. æKY siow.r
  4122. æKL 
  4123.  'DITL'__rAboutAlert
  4124. 'DITL'__rUserAlert
  4125. 'pzza'
  4126. AppleMenu
  4127. BNDL
  4128. CREATOR
  4129. CREATOR (0)
  4130. DITL
  4131. EditMenu
  4132. FCREATOR
  4133. FileMenu
  4134. FontMenu
  4135. FREF
  4136. ICN#
  4137. kErrStrings
  4138. MBAR
  4139. pzza
  4140. rAboutAlert
  4141. rDocWindow
  4142. rHScroll
  4143. rSaveAlert
  4144. rUserAlert
  4145. rVScroll
  4146. SIZE
  4147. type CREATOR
  4148. WindowHeight
  4149. WindowWidth     
  4150.  
  4151. æKY CREATOR
  4152. æFr siow.r
  4153. æT #define
  4154. æD #include "systypes.r"
  4155. #include "types.r"
  4156.  
  4157. #include "SIOW.h"
  4158.  
  4159. #ifndef CREATOR
  4160.      #define CREATOR 'siow'
  4161. #endif
  4162. æC 
  4163.  
  4164. æKY FCREATOR
  4165. æFr siow.r
  4166. æT #define
  4167. æD #ifndef FCREATOR
  4168.      #define FCREATOR 'MPS '
  4169. #endif
  4170. æC 
  4171.  
  4172. æKY pzza
  4173. æFr siow.r
  4174. æT 
  4175. æD 
  4176. type 'pzza' {
  4177.     literal longint;
  4178. };
  4179. æC 
  4180.  
  4181. æKY 'pzza'
  4182. æFr siow.r
  4183. æT 
  4184. æD 
  4185. resource 'pzza' (128, purgeable) {
  4186.     FCREATOR;
  4187. };
  4188. æC 
  4189.  
  4190. æKY MBAR
  4191. æFr siow.r
  4192. æT 
  4193. æD 
  4194. /* we use an MBAR resource to conveniently load all the menus */
  4195.  
  4196. resource 'MBAR' (__rMenuBar, preload) {
  4197.     { __mApple, __mFile, __mEdit, __mFont /*, __mSize */};      /* five menus */
  4198. };
  4199. æC 
  4200.  
  4201. æKY AppleMenu
  4202. æFr siow.r
  4203. æT 
  4204. æD 
  4205. resource 'MENU' (__mApple, preload) {
  4206.     __mApple, textMenuProc,
  4207.     0b1111111111111111111111111111101,  /* disable dashed line, enable About and DAs */
  4208.     enabled, apple,
  4209.     {
  4210.         "About S I O W\311",
  4211.             noicon, nokey, nomark, plain;
  4212.         "-",
  4213.             noicon, nokey, nomark, plain
  4214.     }
  4215. };
  4216. æC 
  4217.  
  4218. æKY FileMenu
  4219. æFr siow.r
  4220. æT 
  4221. æD 
  4222. resource 'MENU' (__mFile, preload) {
  4223.     __mFile, textMenuProc,
  4224.     0b000000000000000000000000000000,   /* enable Quit only, program enables others */
  4225.     enabled, "File",
  4226.     {
  4227.         "New",
  4228.             noicon, "N", nomark, plain;
  4229.         "Open",
  4230.             noicon, "O", nomark, plain;
  4231.         "-",
  4232.             noicon, nokey, nomark, plain;
  4233.         "Close",
  4234.             noicon, "W", nomark, plain;
  4235.         "Save",
  4236.             noicon, "S", nomark, plain;
  4237.         "Save As\311",
  4238.             noicon, nokey, nomark, plain;
  4239.         "-",
  4240.             noicon, nokey, nomark, plain;
  4241.         "Page Setup\311",
  4242.             noicon, nokey, nomark, plain;
  4243.         "Print\311",
  4244.             noicon, nokey, nomark, plain;
  4245.         "-",
  4246.             noicon, nokey, nomark, plain;
  4247.         "Quit",
  4248.             noicon, "Q", nomark, plain
  4249.     }
  4250. };
  4251. æC 
  4252.  
  4253. æKY EditMenu
  4254. æFr siow.r
  4255. æT 
  4256. æD 
  4257. resource 'MENU' (__mEdit, preload) {
  4258.     __mEdit, textMenuProc,
  4259.     0b0000000000000000000000000000000,  /* disable everything, program does the enabling */
  4260.     enabled, "Edit",
  4261.      {
  4262.         "Undo",
  4263.             noicon, "Z", nomark, plain;
  4264.         "-",
  4265.             noicon, nokey, nomark, plain;
  4266.         "Cut",
  4267.             noicon, "X", nomark, plain;
  4268.         "Copy",
  4269.             noicon, "C", nomark, plain;
  4270.         "Paste",
  4271.             noicon, "V", nomark, plain;
  4272.         "Clear",
  4273.             noicon, nokey, nomark, plain
  4274.     }
  4275. };
  4276. æC 
  4277.  
  4278. æKY FontMenu
  4279. æFr siow.r
  4280. æT 
  4281. æD 
  4282. resource 'MENU' (__mFont, preload) {
  4283.     __mFont, textMenuProc,
  4284.     0b1111111111111111111111111111111,  /* enable everything */
  4285.     enabled, "Font",
  4286.      {
  4287.      }
  4288. };
  4289. æC 
  4290.  
  4291. æKY rAboutAlert
  4292. æFr siow.r
  4293. æT 
  4294. æD 
  4295. /* this ALRT and DITL are used as an About screen */
  4296.  
  4297. resource 'ALRT' (__rAboutAlert, purgeable) {
  4298.     {66, 58, 344, 396}, __rAboutAlert, {
  4299.         OK, visible, silent;
  4300.         OK, visible, silent;
  4301.         OK, visible, silent;
  4302.         OK, visible, silent
  4303.     };
  4304. };
  4305. æC 
  4306.  
  4307. æKY  'DITL'__rAboutAlert
  4308. æFr siow.r
  4309. æT 
  4310. æD 
  4311. resource 'DITL' (__rAboutAlert, purgeable) {
  4312.     {   /* array DITLarray: 8 elements */
  4313.         /* [1] */
  4314.         {233, 144, 253, 224},
  4315.         Button {
  4316.             enabled,
  4317.             "OK"
  4318.         },
  4319.         /* [2] */
  4320.         {8, 72, 23, 264},
  4321.         StaticText {
  4322.             disabled,
  4323.             "Simple Input/Output Window"
  4324.         },
  4325.         /* [3] */
  4326.         {56, 24, 71, 337},
  4327.         StaticText {
  4328.             disabled,
  4329.             "Copyright ©Apple Computer, Inc. 1989-1990 "
  4330.         },
  4331.         /* [4] */
  4332.         {80, 108, 96, 244},
  4333.         StaticText {
  4334.             disabled,
  4335.             "Brought to you by..."
  4336.         },
  4337.         /* [5] */
  4338.         {109, 132, 134, 229},
  4339.         StaticText {
  4340.             disabled,
  4341.             "\"PZZA SLT\""
  4342.         },
  4343.         /* [6] */
  4344.         {176, 56, 200, 289},
  4345.         StaticText {
  4346.             disabled,
  4347.             "Roger, Russ, Landon, Ira & Munch"
  4348.         },
  4349.         /* [7] */
  4350.         {152, 24, 170, 212},
  4351.         StaticText {
  4352.             disabled,
  4353.             "Special Thanks to..."
  4354.         },
  4355.         /* [8] */
  4356.         {32, 152, 47, 200},
  4357.         StaticText {
  4358.             disabled,
  4359.             "(SIOW)"
  4360.         }
  4361.     }
  4362. };
  4363. æC 
  4364.  
  4365. æKY rUserAlert
  4366. æFr siow.r
  4367. æT 
  4368. æD 
  4369. /* this ALRT and DITL are used as an error screen */
  4370.  
  4371. resource 'ALRT' (__rUserAlert, purgeable) {
  4372.     {40, 20, 150, 260},
  4373.     __rUserAlert,
  4374.     { /* array: 4 elements */
  4375.         /* [1] */
  4376.         OK, visible, silent,
  4377.         /* [2] */
  4378.         OK, visible, silent,
  4379.         /* [3] */
  4380.         OK, visible, silent,
  4381.         /* [4] */
  4382.         OK, visible, silent
  4383.     }
  4384. };
  4385. æC 
  4386.  
  4387. æKY 'DITL'__rUserAlert
  4388. æFr siow.r
  4389. æT 
  4390. æD 
  4391. resource 'DITL' (__rUserAlert, purgeable) {
  4392.     { /* array DITLarray: 3 elements */
  4393.         /* [1] */
  4394.         {80, 150, 100, 230},
  4395.         Button {
  4396.             enabled,
  4397.             "OK"
  4398.         },
  4399.         /* [2] */
  4400.         {10, 60, 60, 230},
  4401.         StaticText {
  4402.             disabled,
  4403.             "Error. ^0."
  4404.         },
  4405.         /* [3] */
  4406.         {8, 8, 40, 40},
  4407.         Icon {
  4408.             disabled,
  4409.             2
  4410.         }
  4411.     }
  4412. };
  4413.  
  4414.  
  4415. æC 
  4416.  
  4417. æKY WindowHeight
  4418. æFr siow.r
  4419. æT #define
  4420. æD #define WindowHeight     286
  4421. æC 
  4422.  
  4423. æKY WindowWidth     
  4424. æFr siow.r
  4425. æT #define
  4426. æD #define WindowWidth      480
  4427. æC 
  4428.  
  4429. æKY rDocWindow
  4430. æFr siow.r
  4431. æT 
  4432. æD 
  4433. resource 'WIND' (__rDocWindow, preload, purgeable) {
  4434.     {0, 0, WindowHeight, WindowWidth},
  4435.     zoomDocProc, invisible, noGoAway, 0x0, "untitled"
  4436. };
  4437. æC 
  4438.  
  4439. æKY rVScroll
  4440. æFr siow.r
  4441. æT 
  4442. æD 
  4443. resource 'CNTL' (__rVScroll, preload, purgeable) {
  4444.     {-1, WindowWidth-15, WindowHeight-14, WindowWidth+1},
  4445.     0, invisible, 0, 0, scrollBarProc, 0, ""
  4446. };
  4447. æC 
  4448.  
  4449. æKY rHScroll
  4450. æFr siow.r
  4451. æT 
  4452. æD 
  4453. resource 'CNTL' (__rHScroll, preload, purgeable) {
  4454.     {WindowHeight-15, -1, WindowHeight+1, WindowWidth-14},
  4455.     0, invisible, 0, 0, scrollBarProc, 0, ""
  4456. };
  4457. æC 
  4458.  
  4459. æKY kErrStrings
  4460. æFr siow.r
  4461. æT 
  4462. æD 
  4463. resource 'STR#' (__kErrStrings, purgeable) {
  4464.     {
  4465.     "You must run on 512Ke or later";
  4466.     "Application Memory Size is too small";
  4467.     "Not enough memory to run SIOW";
  4468.     "Not enough memory to do Cut";
  4469.     "Cannot do Cut";
  4470.     "Cannot do Copy";
  4471.     "Cannot exceed 32,000 characters with Paste";
  4472.     "Not enough memory to do Paste";
  4473.     "Cannot create window";
  4474.     "Cannot exceed 32,000 characters";
  4475.     "Cannot do Paste"
  4476.     "Font not found"
  4477.     }
  4478. };
  4479. æC 
  4480.  
  4481. æKY SIZE
  4482. æFr siow.r
  4483. æT 
  4484. æD 
  4485. /* here is the quintessential MultiFinder friendliness device, the SIZE resource */
  4486.  
  4487. resource 'SIZE' (-1) {
  4488.     dontSaveScreen,
  4489.     acceptSuspendResumeEvents,
  4490.     enableOptionSwitch,
  4491.     canBackground,              /* we can background; we don't currently, but our sleep value */
  4492.                                 /* guarantees we don't hog the Mac while we are in the background */
  4493.     multiFinderAware,           /* this says we do our own activate/deactivate; don't fake us out */
  4494.     backgroundAndForeground,    /* this is definitely not a background-only application! */
  4495.     dontGetFrontClicks,         /* change this is if you want "do first click" behavior like the Finder */
  4496.     ignoreChildDiedEvents,      /* essentially, I'm not a debugger (sub-launching) */
  4497.     not32BitCompatible,         /* this app should not be run in 32-bit address space */
  4498.     reserved,
  4499.     reserved,
  4500.     reserved,
  4501.     reserved,
  4502.     reserved,
  4503.     reserved,
  4504.     reserved,
  4505.     __kPrefSize * 1024,
  4506.     __kMinSize * 1024   
  4507. };
  4508. æC 
  4509.  
  4510. æKY type CREATOR
  4511. æFr siow.r
  4512. æT 
  4513. æD 
  4514. type CREATOR as 'STR ';
  4515. æC 
  4516.  
  4517. æKY CREATOR (0)
  4518. æFr siow.r
  4519. æT 
  4520. æD 
  4521. resource CREATOR (0) {
  4522.     "MultiFinder-Aware Simple Input/Output Window (SIOW)"
  4523. };
  4524. æC 
  4525.  
  4526. æKY BNDL
  4527. æFr siow.r
  4528. æT 
  4529. æD 
  4530. resource 'BNDL' (128) {
  4531.     CREATOR,
  4532.     0,
  4533.     {
  4534.         'ICN#',
  4535.         {
  4536.             0, 128
  4537.         },
  4538.         'FREF',
  4539.         {
  4540.             0, 128
  4541.         }
  4542.     }
  4543. };
  4544.  
  4545. æC 
  4546.  
  4547. æKY FREF
  4548. æFr siow.r
  4549. æT 
  4550. æD 
  4551. resource 'FREF' (128) {
  4552.     'APPL',
  4553.     0,
  4554.     ""
  4555. };
  4556. æC 
  4557.  
  4558. æKY ICN#
  4559. æFr siow.r
  4560. æT 
  4561. æD 
  4562. resource 'ICN#' (128) {
  4563.     {   /* array: 2 elements */
  4564.         /* [1] */
  4565.         $"0000 0000 0000 0000 0010 4100 0010 2200"
  4566.         $"0020 2200 0020 2100 0020 4100 0010 4200"
  4567.         $"0010 4200 0010 2200 0020 2100 0020 0100"
  4568.         $"00FF FF00 03FF FFE0 0791 03F0 0ED1 0E7C"
  4569.         $"1C31 321C 380D C10E 3FFF FFFE 3003 C106"
  4570.         $"380D 300E 1E31 0E3C 1FC1 01F8 07FF FFE0"
  4571.         $"00FF FE00",
  4572.         /* [2] */
  4573.         $"0000 0000 0000 0000 0010 4100 0010 2200"
  4574.         $"0020 2200 0020 2100 0020 4100 0010 4200"
  4575.         $"0010 4200 0010 2200 0020 2100 0020 0100"
  4576.         $"00FF FF00 03FF FFE0 07FF FFF0 0FFF FFFC"
  4577.         $"1FFF FFFC 3FFF FFFE 3FFF FFFE 3FFF FFFE"
  4578.         $"3FFF FFFE 1FFF FFFC 1FFF FFF8 07FF FFE0"
  4579.         $"00FF FE00"
  4580.     }
  4581. };
  4582. æC 
  4583.  
  4584. æKY rSaveAlert
  4585. æFr siow.r
  4586. æT 
  4587. æD 
  4588. resource 'ALRT' (__rSaveAlert, preload) {
  4589.     {72, 64, 212, 372},
  4590.     __rSaveAlert,
  4591.     {   /* array: 4 elements */
  4592.         /* [1] */
  4593.         OK, visible, silent,
  4594.         /* [2] */
  4595.         OK, visible, silent,
  4596.         /* [3] */
  4597.         OK, visible, silent,
  4598.         /* [4] */
  4599.         OK, visible, silent
  4600.     }
  4601. };
  4602. æC 
  4603.  
  4604. æKY DITL
  4605. æFr siow.r
  4606. æT 
  4607. æD 
  4608. resource 'DITL' (__rSaveAlert, preload) {
  4609.     {   /* array DITLarray: 4 elements */
  4610.         /* [1] */
  4611.         {58, 25, 76, 99},
  4612.         Button {
  4613.             enabled,
  4614.             "Yes"
  4615.         },
  4616.         /* [2] */
  4617.         {86, 25, 104, 99},
  4618.         Button {
  4619.             enabled,
  4620.             "No"
  4621.         },
  4622.         /* [3] */
  4623.         {12, 20, 45, 277},
  4624.         StaticText {
  4625.             disabled,
  4626.             "Save changes before closing?"
  4627.         },
  4628.         /* [4] */
  4629.         {86, 195, 104, 269},
  4630.         Button {
  4631.             enabled,
  4632.             "Cancel"
  4633.         }
  4634.     }
  4635. };
  4636. æC 
  4637.  
  4638.  
  4639. æKY SysTypes.r
  4640. æKL 
  4641.  ppcc
  4642. 'KCAP'
  4643. bold            
  4644. colonSymbol         
  4645. commaSymbol         
  4646. CommFlags
  4647. condense       
  4648. dollarsignSymbol    
  4649. DRVR
  4650. extend         
  4651. FileSpec
  4652. FileSpecFlags
  4653. finf
  4654. fld# 
  4655. FOND
  4656. FONT
  4657. FRSV
  4658. FWID
  4659. gmcd
  4660. insc
  4661. INTL (0)
  4662. INTL (1)
  4663. it10
  4664. italic          
  4665. itl1
  4666. itl2
  4667. itl4
  4668. itlb
  4669. itlc
  4670. itlk
  4671. itlm
  4672. KCHR
  4673. KMAP
  4674. KSWP
  4675. Language   
  4676. mach
  4677. mcky
  4678. mitq 
  4679. mppc
  4680. NFNT
  4681. nrct
  4682. outline         
  4683. periodSymbol
  4684. Region     
  4685. resf
  4686. ROv#
  4687. RsrcSpecFlags
  4688. Script     
  4689. scrn
  4690. semicolonSymbol     
  4691. shadow         
  4692. slashSymbol         
  4693. snd
  4694. underline       
  4695. vers
  4696.  
  4697. æKY periodSymbol
  4698. æFr SysTypes.r
  4699. æT #define
  4700. æD #define periodSymbol         "."
  4701. æC 
  4702.  
  4703. æKY commaSymbol         
  4704. æFr SysTypes.r
  4705. æT #define
  4706. æD #define commaSymbol          ","
  4707. æC 
  4708.  
  4709. æKY semicolonSymbol     
  4710. æFr SysTypes.r
  4711. æT #define
  4712. æD #define semicolonSymbol      ";"
  4713. æC 
  4714.  
  4715. æKY dollarsignSymbol    
  4716. æFr SysTypes.r
  4717. æT #define
  4718. æD #define dollarsignSymbol     "$"
  4719. æC 
  4720.  
  4721. æKY slashSymbol         
  4722. æFr SysTypes.r
  4723. æT #define
  4724. æD #define slashSymbol          "/"
  4725. æC 
  4726.  
  4727. æKY colonSymbol         
  4728. æFr SysTypes.r
  4729. æT #define
  4730. æD #define colonSymbol          ":"
  4731. æC 
  4732.  
  4733. æKY Script     
  4734. æFr SysTypes.r
  4735. æT #define
  4736. æD #define Script      smRoman, smJapanese, smTradChinese, smKorean,       \
  4737.                     smArabic, smHebrew, smGreek, smCyrillic, smRSymbol, \
  4738.                     smDevanagari, smGurmukhi, smGujarati, smOriya,      \
  4739.                     smBengali, smTamil, smTelugu, smKannada,            \
  4740.                     smMalayalam, smSinhalese, smBurmese, smKhmer,       \
  4741.                     smThai, smLaotian, smGeorgian, smArmenian,          \
  4742.                     smSimpChinese, smTibetan, smMongolian, smGeez,      \
  4743.                     smSlavic, smVietnamese, smExtArabic, smUninterp     \
  4744.  
  4745. æC 
  4746.  
  4747. æKY Language   
  4748. æFr SysTypes.r
  4749. æT #define
  4750. æD #define Language    langEnglish, langFrench, langGerman, langItalian,   \
  4751.                     langDutch, langSwedish, langSpanish, langDanish,    \
  4752.                     langPortuguese, langNorwegian, langHebrew,          \
  4753.                     langJapanese, langArabic, langFinnish, langGreek,   \
  4754.                     langIcelandic, langMaltese, langTurkish,            \
  4755.                     langCroatian, langTradChinese, langUrdu,            \
  4756.                     langHindi, langThai, langKorean, langLithuanian,    \
  4757.                     langPolish, langHungarian, langEstonian,            \
  4758.                     langLettish, langLappish, langFaeroese,             \
  4759.                     langFarsi, langRussian, langSimpChinese,            \
  4760.                     langFlemish, langIrish, langAlbanian, langRomanian, \
  4761.                     langCzech, langSlovak, langSlovenian, langYiddish,  \
  4762.                     langSerbian, langMacedonian, langBulgarian,         \
  4763.                     langUkrainian, langByelorussian, langUzbek,         \
  4764.                     langKazakh, langAzerbaijani, langAzerbaijanAr,      \
  4765.                     langArmenian, langGeorgian, langMoldavian,          \
  4766.                     langKirghiz, langTajiki, langTurkmen,               \
  4767.                     langMongolian, langMongolianCyr, langPashto,        \
  4768.                     langKurdish, langKashmiri, langSindhi, langTibetan, \
  4769.                     langNepali, langSanskrit, langMarathi, langBengali, \
  4770.                     langAssamese, langGujarati, langPunjabi, langOriya, \
  4771.                     langMalayalam, langKannada, langTamil, langTelugu,  \
  4772.                     langSinhalese, langBurmese, langKhmer, langLao,     \
  4773.                     langVietnamese, langIndonesian, langTagalog,        \
  4774.                     langMalayRoman, langMalayArabic, langAmharic,       \
  4775.                     langTigrinya, langGalla, langSomali, langSwahili,   \
  4776.                     langRuanda, langRundi, langChewa, langMalagasy,     \
  4777.                     langEsperanto, langUnspecified = 32767              \
  4778.  
  4779. æC 
  4780.  
  4781. æKY Region     
  4782. æFr SysTypes.r
  4783. æT #define
  4784. æD #define Region      verUS, verFrance, verBritain, verGermany,           \
  4785.                     verItaly, verNetherlands, verBelgiumLux,            \
  4786.                     verFrBelgiumLux = 6, verSweden, verSpain,           \
  4787.                     verDenmark, verPortugal, verFrCanada, verNorway,    \
  4788.                     verIsrael, verJapan, verAustralia, verArabia,       \
  4789.                     verArabic=16, verFinland, verFrSwiss, verGrSwiss,   \
  4790.                     verGreece, verIceland, verMalta, verCyprus,         \
  4791.                     verTurkey, verYugoslavia, verYugoCroatian = 25,     \
  4792.                     verIndia = 33, verIndiaHindi = 33, verPakistan,     \
  4793.                     verLithuania = 41, verPoland, verHungary,           \
  4794.                     verEstonia, verLatvia, verLapland, verFaeroeIsl,    \
  4795.                     verIran, verRussia, verIreland = 50, verKorea,      \
  4796.                     verChina, verTaiwan, verThailand                    \
  4797.  
  4798. æC 
  4799.  
  4800. æKY bold            
  4801. æFr SysTypes.r
  4802. æT #define
  4803. æD #define bold             1
  4804. æC 
  4805.  
  4806. æKY italic          
  4807. æFr SysTypes.r
  4808. æT #define
  4809. æD #define italic           2
  4810. æC 
  4811.  
  4812. æKY underline       
  4813. æFr SysTypes.r
  4814. æT #define
  4815. æD #define underline        4
  4816. æC 
  4817.  
  4818. æKY outline         
  4819. æFr SysTypes.r
  4820. æT #define
  4821. æD #define outline          8
  4822. æC 
  4823.  
  4824. æKY shadow         
  4825. æFr SysTypes.r
  4826. æT #define
  4827. æD #define shadow          16
  4828. æC 
  4829.  
  4830. æKY condense       
  4831. æFr SysTypes.r
  4832. æT #define
  4833. æD #define condense        32
  4834. æC 
  4835.  
  4836. æKY extend         
  4837. æFr SysTypes.r
  4838. æT #define
  4839. æD #define extend          64
  4840. æC 
  4841.  
  4842. æKY DRVR
  4843. æFr SysTypes.r
  4844. æT 
  4845. æD 
  4846. /*----------------------------DRVR • Driver---------------------------------------------*/
  4847. type 'DRVR' {
  4848.         boolean = 0;
  4849.         boolean         dontNeedLock, needLock;                 /* lock drvr in memory  */
  4850.         boolean         dontNeedTime, needTime;                 /* for periodic action  */
  4851.         boolean         dontNeedGoodbye, needGoodbye;           /* call before heap reinit*/
  4852.         boolean         noStatusEnable, statusEnable;           /* responds to status   */
  4853.         boolean         noCtlEnable, ctlEnable;                 /* responds to control  */
  4854.         boolean         noWriteEnable, writeEnable;             /* responds to write    */
  4855.         boolean         noReadEnable, readEnable;               /* responds to read     */
  4856.         byte = 0;
  4857.         integer;                                                /* driver delay         */
  4858.         unsigned hex integer;                                   /* desk acc event mask  */
  4859.         integer;                                                /* driver menu          */
  4860.         unsigned hex integer;                                   /* offset to open       */
  4861.         unsigned hex integer;                                   /* offset to prime      */
  4862.         unsigned hex integer;                                   /* offset to control    */
  4863.         unsigned hex integer;                                   /* offset to status     */
  4864.         unsigned hex integer;                                   /* offset to close      */
  4865.         pstring;                                                /* driver name          */
  4866.         hex string;                                             /* driver code          */
  4867. };
  4868. æC 
  4869.  
  4870. æKY finf
  4871. æFr SysTypes.r
  4872. æT 
  4873. æD /*----------------------------finf • Font Family Description----------------------------*/
  4874. type 'finf' {
  4875.         integer = $$CountOf(Fonts);                             /* # of fonts           */
  4876.         array Fonts {
  4877.             integer;                                            /* Font Number          */
  4878.             unsigned hex integer    plain;                      /*      Font Style      */
  4879.             integer;                                            /*      Font Size       */
  4880.         };
  4881. };
  4882. æC 
  4883.  
  4884. æKY FOND
  4885. æFr SysTypes.r
  4886. æT 
  4887. æD /*----------------------------FOND • Font Family Description----------------------------*/
  4888. /* Note: this FOND resource definition only works when the tables at the end of the
  4889.          resource are in this order:    1 - Family Character-Width Table
  4890.                                         2 - Style Mapping Table
  4891.                                         3 - Kerning Tables
  4892. */
  4893. type 'FOND' {
  4894.         /* Flags Word */
  4895.         boolean     proportionalFont, fixedWidthFont;
  4896.         boolean     useFractWidthTable, dontUseFractWidthTable;
  4897.         boolean     computeFixedPointExtra, useIntegerExtra;
  4898.         boolean     useFractEnable, ignoreFractEnable;
  4899.         boolean     canAdjustCharSpacing, dontAdjustCharSpacing;
  4900.         unsigned hex bitstring[9] = 0;                          /* Reserved             */
  4901.         boolean     noCharWidthTable, hasCharWidthTable;
  4902.         boolean     noImageHeightTable, hasImageHeightTable;
  4903.  
  4904.         integer;                                                /* Family ID number     */
  4905.     First:
  4906.         integer;                                                /* first char           */
  4907.     Last:
  4908.         integer;                                                /* last char            */
  4909.         integer;                                                /* Ascent               */
  4910.         integer;                                                /* Descent              */
  4911.         integer;                                                /* Leading              */
  4912.         integer;                                                /* Width Max            */
  4913.     WidthOffset:
  4914.         unsigned hex longint = WidthTable[1] >> 3;              /* Width table offset   */
  4915.     KerningOffset:
  4916.         unsigned hex longint = KerningTable[1] >> 3;            /* Kerning table offset */
  4917.     StyleMapOffset:
  4918.         unsigned hex longint = StyleTable[1] >> 3;              /* Style map offset     */
  4919.         integer;                                                /* reserved             */
  4920.         integer;                                                /* ex wid bold          */
  4921.         integer;                                                /* ex wid italic        */
  4922.         integer;                                                /* ex wid underline     */
  4923.         integer;                                                /* ex wid outline       */
  4924.         integer;                                                /* ex wid shadow        */
  4925.         integer;                                                /* ex wid condensed     */
  4926.         integer;                                                /* ex wid extended      */
  4927.         integer;                                                /* reserved             */
  4928.         longint;                                                /* reserved for intl    */
  4929.     Version:
  4930.         integer;                                                /* version              */
  4931.  
  4932.         /* Font Association Table */
  4933.         integer = $$CountOf(FontEntries)-1;                     /* # of font entries    */
  4934.         wide array FontEntries {
  4935.             integer;                                            /* Font size            */
  4936.             unsigned hex integer    plain;                      /*      Font Style      */
  4937.             integer;                                            /* Resource ID of FONT  */
  4938.         };
  4939.         /*  */
  4940.         array [$$Word(Version) == 2] {
  4941.     OffsetTableStart:
  4942.             integer = $$CountOf(OffsetTable) - 1;
  4943.             array OffsetTable {
  4944.                 longint = (BBoxStart[1] - OffsetTableStart[1]) >> 3;
  4945.             };
  4946.             /* Font Bounding Box Table */
  4947.     BBoxStart:
  4948.             integer = $$CountOf(BBoxTable) - 1;
  4949.             wide array BBoxTable {
  4950.                 fill bit[9];                                    /* Reserved             */
  4951.                 Boolean     noExtendedStyle, EXTENDEDstyle;     /* Extended style       */
  4952.                 Boolean     noCondensedStyle, CONDENSEDstyle;   /* Condensed style      */
  4953.                 Boolean     noShadowStyle, SHADOWstyle;         /* Shadow style         */
  4954.                 Boolean     noOutlineStyle, OUTLINEstyle;       /* Outline style        */
  4955.                 Boolean     noUnderline, UNDERLINEstyle;        /* Underline style      */
  4956.                 Boolean     noItalicStyle, ITALICstyle;         /* Italic style         */
  4957.                 Boolean     noBoldStyle, BOLDstyle;             /* Bold style           */
  4958.                 Rect;
  4959.             };
  4960.         };
  4961.  
  4962.         /* Family Character-Width Table */
  4963.         /* This outer array below handles the case when the width table offset (WidthOffset:)
  4964.            is zero. */
  4965.         array [$$Long(WidthOffset) != 0] {
  4966.     WidthTable:
  4967.             integer = $$CountOf(WidthTable) - 1;                /* # of width tables    */
  4968.             wide array WidthTable {
  4969.                 fill bit[9];                                    /* Reserved             */
  4970.                 Boolean     noExtendedStyle, EXTENDEDstyle;     /* Extended style       */
  4971.                 Boolean     noCondensedStyle, CONDENSEDstyle;   /* Condensed style      */
  4972.                 Boolean     noShadowStyle, SHADOWstyle;         /* Shadow style         */
  4973.                 Boolean     noOutlineStyle, OUTLINEstyle;       /* Outline style        */
  4974.                 Boolean     noUnderline, UNDERLINEstyle;        /* Underline style      */
  4975.                 Boolean     noItalicStyle, ITALICstyle;         /* Italic style         */
  4976.                 Boolean     noBoldStyle, BOLDstyle;             /* Bold style           */
  4977.  
  4978.                 wide array [$$Word(Last) - $$Word(First) + 3] {
  4979.                     unsigned hex integer;                       /* Width of character   */
  4980.                 };
  4981.             };
  4982.         };
  4983.  
  4984.         /* Style Mapping Table */
  4985.         /* This outer array below handles the case when the width table offset (WidthOffset:)
  4986.            is zero. */
  4987.         array [$$Long(StyleMapOffset) != 0] {
  4988.     StyleTable:
  4989.             unsigned hex integer;                               /* Font class           */
  4990.     CharCodeOffset:
  4991.             unsigned hex longint =                              /* Encoding table offset*/
  4992.                 (CharCodeTable[1,1] - StyleTable[1]) / 8 * (CharCodeTable[1,1] != 0);
  4993.             fill long;                                          /* Reserved             */
  4994.             array [48] {
  4995.                 byte;
  4996.             };
  4997.             /* Style Name Table */
  4998.             integer = $$CountOf(StyleNames);                    /* Number of strings    */
  4999.             pstring;                                            /* Full base font name  */
  5000.             array StyleNames {
  5001.                 pstring;                                        /* Style suffix names   */
  5002.             };
  5003.  
  5004.             /* Character Set Encoding Table */
  5005.             /* This outer array below handles the case when the character set encoding
  5006.                offset is zero (CharCodeOffset:) */
  5007.             array [$$Long(CharCodeOffset[1]) != 0] {
  5008.     CharCodeTable:
  5009.                 integer = $$CountOf(CharacterCodes);            /* Number of entries    */
  5010.                 wide array CharacterCodes {
  5011.                     char;                                       /* Character code       */
  5012.                     pstring;                                    /* Char name string     */
  5013.                 };
  5014.             };
  5015.         };
  5016.  
  5017.         /* Kerning Tables */
  5018.         /* This outer array below handles the case when the kerning table offset
  5019.            (KerningOffset:) is zero. */
  5020.         array [$$Long(KerningOffset) != 0] {
  5021.             /* Kerning Tables */
  5022.     KerningTable:
  5023.             integer = $$CountOf(KerningTables) - 1;             /* Number of tables     */
  5024.             wide array KerningTables {
  5025.                 fill bit[9];                                    /* Reserved             */
  5026.                 Boolean     noExtendedStyle, EXTENDEDstyle;     /* Extended style       */
  5027.                 Boolean     noCondensedStyle, CONDENSEDstyle;   /* Condensed style      */
  5028.                 Boolean     noShadowStyle, SHADOWstyle;         /* Shadow style         */
  5029.                 Boolean     noOutlineStyle, OUTLINEstyle;       /* Outline style        */
  5030.                 Boolean     noUnderline, UNDERLINEstyle;        /* Underline style      */
  5031.                 Boolean     noItalicStyle, ITALICstyle;         /* Italic style         */
  5032.                 Boolean     noBoldStyle, BOLDstyle;             /* Bold style           */
  5033.                 integer = $$CountOf(KerningTableEntry);         /* # of entries         */
  5034.                 wide array KerningTableEntry {
  5035.                     char;                                       /* first char of pair   */
  5036.                     char;                                       /* second char of pair  */
  5037.                     unsigned hex integer;                       /* kerning offset       */
  5038.                 };
  5039.             };
  5040.         };
  5041. };
  5042. æC 
  5043.  
  5044. æKY FONT
  5045. æFr SysTypes.r
  5046. æT 
  5047. æD /*----------------------------FONT • Font Description-----------------------------------*/
  5048. /* PROBLEMS: the offset to the offset/width table has been changed to a longint, with the
  5049.              high word stored in the neg descent field (if its not -1).  Rez can't handle
  5050.              this. */
  5051. type 'FONT' {
  5052.         /* Font Type Flags */
  5053. FontType:
  5054.         boolean = 1;                                            /* Reserved             */
  5055.         boolean     doExpandFont, dontExpandFont;
  5056.         boolean     proportionalFont, fixedWidthFont;
  5057.         boolean = 1;                                            /* Reserved             */
  5058.         unsigned bitstring[2] = 0;                              /* Reserved             */
  5059.         boolean     blackFont, colorFont;
  5060.         boolean     notSynthetic, isSynthetic;
  5061.         boolean     nofctbRsrc, hasfctbRsrc;
  5062.         unsigned bitstring[3] = 0;                              /* Reserved             */
  5063.         unsigned bitstring[2]   oneBit, twoBit,                 /* Font depth           */
  5064.                                 fourBit, eightBit;
  5065.         boolean     noCharWidthTable, hasCharWidthTable;
  5066.         boolean     noImageHeightTable, hasImageHeightTable;
  5067.  
  5068.     FirstChar:
  5069.         integer;                                                /* first char           */
  5070.     LastChar:
  5071.         integer;                                                /* last char            */
  5072.         integer;                                                /* width max            */
  5073.         integer;                                                /* kern max             */
  5074.         integer;                                                /* neg descent          */
  5075.         integer;                                                /* font rect width      */
  5076.     Height:
  5077.         integer;                                                /* font rect height     */
  5078.     Offset:
  5079.         unsigned integer = ((WidthTable-Offset)/16);            /* offset to off/wid tab*/
  5080.         integer;                                                /* ascent               */
  5081.         integer;                                                /* descent              */
  5082.         integer;                                                /* leading              */
  5083.     RowWords:
  5084.         integer;                                                /* row width (in words) */
  5085.  
  5086.         /* Tables */
  5087.         /* Bit image */
  5088.         hex string [($$Word(RowWords) <<($$BitField(FontType, 12, 2)
  5089.             & 3) + 1) * $$Word(Height)];
  5090.  
  5091.         /* Location Table */
  5092.         array [$$Word(LastChar) - $$Word(FirstChar) + 3] {
  5093.             integer;
  5094.         };
  5095.  
  5096.         /* Offset/Width Table */
  5097.     WidthTable:
  5098.         array [$$Word(LastChar) - $$Word(FirstChar) + 3] {
  5099.             integer;
  5100.         };
  5101.  
  5102.         /* Optional Character Width Table */            
  5103.         Array [($$Word(FontType) & 0x0002) != 0] {  
  5104.             array [$$Word(LastChar) - $$Word(FirstChar) + 3] {
  5105.                 integer;
  5106.             };
  5107.         };
  5108.     
  5109.         /* Optional Image Height Table */
  5110.         Array [($$Word(FontType) & 0x0001) != 0] {  
  5111.             array [$$Word(LastChar) - $$Word(FirstChar) + 3] {
  5112.                 integer;
  5113.             };
  5114.         };
  5115. };
  5116. æC 
  5117.  
  5118. æKY FWID
  5119. æFr SysTypes.r
  5120. æT 
  5121. æD /*----------------------------FWID • Font Width Table-----------------------------------*/
  5122. type 'FWID' {
  5123.         unsigned hex integer;                                   /* Font type            */
  5124.         integer;                                                /* first char           */
  5125.         integer;                                                /* last char            */
  5126.         integer;                                                /* width max            */
  5127.         integer;                                                /* kern max             */
  5128.         integer;                                                /* neg descent          */
  5129.         integer;                                                /* font rect width      */
  5130.         integer;                                                /* font rect height     */
  5131.         unsigned hex integer;                                   /* offset to off/wid tab*/
  5132.         integer;                                                /* ascent               */
  5133.         integer;                                                /* descent              */
  5134.         integer;                                                /* leading              */
  5135.         integer;                                                /* row width (in words) */
  5136.         wide array {                                            /* offset/width table   */
  5137.             byte;                                               /* char offset          */
  5138.             byte;                                               /* char width           */
  5139.         };
  5140. };
  5141. æC 
  5142.  
  5143. æKY gmcd
  5144. æFr SysTypes.r
  5145. æT 
  5146. æD /*----------------------------gmcd • Guard Mechanism for Compression/Decompression------*/
  5147. type 'gmcd' {
  5148.         integer = $$Countof(TypeIDArray);
  5149.         array TypeIDArray {
  5150.             literal longint;                                    /* resource type */
  5151.             integer;                                            /* resource ID */
  5152.         };
  5153. };
  5154. æC 
  5155.  
  5156. æKY CommFlags
  5157. æFr SysTypes.r
  5158. æT #define
  5159. æD #define CommFlags                                                                          \
  5160.         boolean     noDelRemove, delRemove;             /* Remove file if remove clicked*/ \
  5161.         boolean     noDelInstall, delInstall;           /* Delete target before copy    */ \
  5162.         boolean     noCopy, copy;                       /* Copy file to destination     */ \
  5163.         fill bit[3];                                    /* Reserved                     */ \
  5164.         boolean     doReplace, dontReplace;             /* Replace                      */ \
  5165.         fill bit[1];                                    /* Reserved                     */ \
  5166.         boolean     old, noOld;                         /* Type & creator need not match*/ \
  5167.         boolean     noUpdateOnly, updateOnly            /* Only update if target exists */
  5168.  
  5169. æC 
  5170.  
  5171. æKY FileSpecFlags
  5172. æFr SysTypes.r
  5173. æT #define
  5174. æD #define FileSpecFlags                                                                      \
  5175.         CommFlags;                                                                         \
  5176.         boolean     noRsrcFork, rsrcFork;               /* Apply operation to rsrc fork */ \
  5177.         boolean     noDataFork, dataFork;               /* Apply operation to data fork */ \
  5178.         boolean     needExist, needNotExist;            /* File need not exist          */ \
  5179.         boolean     noCrDate, crDate;                   /* Creation date must match     */ \
  5180.         boolean     noTypeCr, typeCr;                   /* Type and creator must match  */ \
  5181.         bitstring[1] = 1                                /* Indicates file specification */
  5182.  
  5183. æC 
  5184.  
  5185. æKY RsrcSpecFlags
  5186. æFr SysTypes.r
  5187. æT #define
  5188. æD #define RsrcSpecFlags                                                                      \
  5189.         CommFlags;                                                                         \
  5190.         fill bit;                                       /* Reserved                     */ \
  5191.         boolean     noEvenIf, evenIf;                   /* Do it even if rsrc protected */ \
  5192.         boolean     needExist, needNotExist;            /* Rsrc need not exist          */ \
  5193.         fill bit;                                       /* Reserved                     */ \
  5194.         boolean noByID, byID;                           /* Use name or id to find rsrc  */ \
  5195.         bitstring[1] = 0                                /* Indicates rsrc specification */
  5196.  
  5197. æC 
  5198.  
  5199. æKY FileSpec
  5200. æFr SysTypes.r
  5201. æT #define
  5202. æD #define FileSpec                                                                           \
  5203.         FileSpecFlags;                                  /* FileSpec Flags               */ \
  5204.         literal longint;                                /* File Type                    */ \
  5205.         literal longint;                                /* File Creator                 */ \
  5206.         unsigned hex longint;                           /* Creation Date, use              \
  5207.                                                            $$DateToLongInt() to read in    \
  5208.                                                            the date.                    */ \
  5209.         fill long[3];                                   /* Handle, FDelSize, FAddSize   */ \
  5210.         pstring;                                        /* File Name                    */ \
  5211.         align word
  5212.  
  5213. æC 
  5214.  
  5215. æKY insc
  5216. æFr SysTypes.r
  5217. æT 
  5218. æD type 'insc' {
  5219.         switch {
  5220.             case format0:
  5221.                 key integer = 0;                                /* Script Format        */
  5222.                 hex integer = 0;                                /* Script Flags         */
  5223.                 pstring;                                        /* Script Name          */
  5224.                 align word;
  5225.                 wstring;                                        /* Script Help          */
  5226.                 align word;
  5227.                 unsigned integer = $$CountOf(FileList);         /* File List            */
  5228.                 wide array FileList {
  5229.                     FileSpec;                                   /* File Spec            */
  5230.                 };
  5231.                 unsigned integer = $$CountOf(ResFileList);      /* Resource File List   */
  5232.                 wide array ResFileList {
  5233.                     FileSpec;                                   /* Target File Spec     */
  5234.                     integer = $$CountOf(SrcFileList);           /* Source File List     */
  5235.                     wide array SrcFileList {
  5236.                         FileSpec;                               /* Source File Spec     */
  5237.                         unsigned integer = $$CountOf(ResList);  /* Resource List        */
  5238.                         wide array ResList {
  5239.                             RsrcSpecFlags;                      /* Resource Spec Flags  */
  5240.                             literal longint;                    /* Resource Type        */
  5241.                             integer;                            /* Source ID            */
  5242.                             integer;                            /* Target ID            */
  5243.                             fill word[2];                       /* CRC/Version, Filler1 */
  5244.                             fill long[3];                       /* Filler2, RDelSize,
  5245.                                                                     RAddSize            */
  5246.                             pstring;                            /* Resource Name        */
  5247.                             align word;
  5248.                             integer = 0;                        /* Previous CRC List    */
  5249.                         };
  5250.                     };
  5251.                 };
  5252.                 integer = 0;                                    /* Disk Blocks          */
  5253.  
  5254.             case format1:
  5255.                 key integer = 1;                                /* Script Format        */
  5256.                 hex integer = 0;                                /* Script Flags         */
  5257.                 pstring;                                        /* Script Name          */
  5258.                 align word;
  5259.                 wstring;                                        /* Script Help          */
  5260.                 align word;
  5261.                 unsigned integer = $$CountOf(FileList);         /* File List            */
  5262.                 wide array FileList {
  5263.                     FileSpec;                                   /* File Spec            */
  5264.                 };
  5265.                 unsigned integer = $$CountOf(ResFileList);      /* Resource File List   */
  5266.                 wide array ResFileList {
  5267.                     FileSpec;                                   /* Target File Spec     */
  5268.                     integer = $$CountOf(SrcFileList);           /* Source File List     */
  5269.                     wide array SrcFileList {
  5270.                         FileSpec;                               /* Source File Spec     */
  5271.                         unsigned integer = $$CountOf(ResList);  /* Resource List        */
  5272.                         wide array ResList {
  5273.                             RsrcSpecFlags;                      /* Resource Spec Flags  */
  5274.                             literal longint;                    /* Resource Type        */
  5275.                             integer;                            /* Source ID            */
  5276.                             integer;                            /* Target ID            */
  5277.                             fill word[2];                       /* CRC/Version, Filler1 */
  5278.                             fill long[3];                       /* Filler2, RDelSize,
  5279.                                                                    RAddSize             */
  5280.                             pstring;                            /* Resource Name        */
  5281.                             align word;
  5282.                             integer = 0;                        /* Previous CRC List    */
  5283.                         };
  5284.                     };
  5285.                 };
  5286.                 unsigned integer;                               /* Boot Block Version   */
  5287.                 unsigned integer;                               /* Number of Open Files */
  5288.                 unsigned integer;                               /* Number of Events     */
  5289.                 unsigned hex longint;                           /* Sys Heap Size 128K   */
  5290.                 unsigned hex longint;                           /* Sys Heap Size 256K   */
  5291.                 unsigned hex longint;                           /* Sys Heap Size 512K   */
  5292.           };
  5293. };
  5294. æC 
  5295.  
  5296. æKY INTL (0)
  5297. æFr SysTypes.r
  5298. æT 
  5299. æD /*----------------------------INTL (0) • International Formatting Information-----------*/
  5300. type 'INTL' (0) {
  5301.         char        period = periodSymbol;                      /* decimal pt sep       */
  5302.         char        comma = commaSymbol;                        /* thousands sep        */
  5303.         char        semicolon = semicolonSymbol;                /* list sep             */
  5304.         char        dollarsign = dollarsignSymbol;              /* currSym1             */
  5305.         char;                                                   /* currSym2             */
  5306.         char;                                                   /* currSym3             */
  5307.  
  5308.         /* currFmt */
  5309.         boolean     noLeadZero, leadingZero;                    /* leading unit zero    */
  5310.         boolean     noTrailingZero, trailingZero;               /* trailing dec zero    */
  5311.         boolean     paren, minusSign;                           /* negative rep         */
  5312.         boolean     trails, leads;                              /* curr sym position    */
  5313.         fill bit[4];                                            /* not used             */
  5314.         byte        monDayYear, dayMonYear, yearMonDay,         /* dateOrder            */
  5315.                     monYearDay, dayYearMon, yearDayMon;
  5316.  
  5317.         /* shrtDateFmt */
  5318.         boolean     noCentury, century;                         /* century incl         */
  5319.         boolean     noMonthLeadZero, monthLeadZero;             /* mon lead zero        */
  5320.         boolean     noDayLeadZero, dayLeadZero;                 /* day lead zero        */
  5321.         fill bit[5];                                            /* filler               */
  5322.         char        slash = slashSymbol;                        /* date sep             */
  5323.         byte        twentyFourHour, twelveHourZeroCycle,        /* timeCycle            */
  5324.                     twelveHour = 255;
  5325.  
  5326.         /* timeFmt */
  5327.         boolean     noHoursLeadZero, hoursLeadZero;             /* hours lead zero      */
  5328.         boolean     noMinutesLeadZero, minutesLeadZero;         /* min lead zero        */
  5329.         boolean     noSecondsLeadZero, secondsLeadZero;         /* sec lead zero        */
  5330.         fill bit[5];                                            /* filler               */
  5331.         string[4];                                              /* mornStr              */
  5332.         string[4];                                              /* eveStr               */
  5333.         char;                                                   /* timeSep              */
  5334.         char;                                                   /* time1Stuff           */
  5335.         char;                                                   /* time2Stuff           */
  5336.         char;                                                   /* time3Stuff           */
  5337.         char;                                                   /* time4Stuff           */
  5338.         char;                                                   /* time5Stuff           */
  5339.         char;                                                   /* time6Stuff           */
  5340.         char;                                                   /* time7Stuff           */
  5341.         char;                                                   /* time8Stuff           */
  5342.         byte        standard, metric = 255;                     /* metricSys            */
  5343.         byte        Region;                                     /* INTL0 region         */
  5344.         byte;                                                   /* version              */
  5345. };
  5346. æC 
  5347.  
  5348. æKY it10
  5349. æFr SysTypes.r
  5350. æT 
  5351. æD /*----------------------------itl0 • International Formatting Information---------------*/
  5352. type 'itl0' as 'INTL' (0);
  5353. æC 
  5354.  
  5355. æKY INTL (1)
  5356. æFr SysTypes.r
  5357. æT 
  5358. æD /*----------------------------INTL (1) • International Date/Time Information------------*/
  5359. type 'INTL' (1) {
  5360.         /* Day names */
  5361.         array [7] {
  5362.             pstring[15];                                        /* Sunday, Monday...    */
  5363.         };
  5364.  
  5365.         /* Month names */
  5366.         array [12] {
  5367.             pstring[15];                                        /* January, February... */
  5368.         };
  5369.  
  5370.         byte        dayName, none=255;                          /* suppressDay          */
  5371.         byte        dayMonYear, monDayYear = 255;               /* longDate format      */
  5372.         byte        noDayLeadZero, dayLeadZero = 255;           /* dayLeading0          */
  5373.         byte;                                                   /* abbrLen              */
  5374.         string[4];                                              /* st0                  */
  5375.         string[4];                                              /* st1                  */
  5376.         string[4];                                              /* st2                  */
  5377.         string[4];                                              /* st3                  */
  5378.         string[4];                                              /* st4                  */
  5379.         byte        Region;                                     /* INTL1 region         */
  5380.         byte;                                                   /* version              */
  5381.         hex string  DefaultReturn = "\$4E\$75";                 /* local routine - If
  5382.                                                                    you have one, use
  5383.                                                                    $$Resource to insert
  5384.                                                                    code here.  Otherwise,
  5385.                                                                    you must have a 68000
  5386.                                                                    return instruction.
  5387.                                                                    Use DefaultReturn.   */
  5388. };
  5389. æC 
  5390.  
  5391. æKY itl1
  5392. æFr SysTypes.r
  5393. æT 
  5394. æD /*----------------------------itl1 • International Date/Time Information----------------*/
  5395. /* This is separated out because it is changed for 7.0 to be different than 'INTL' (1). */
  5396. /* The old INTL (1) format had a local routine field at the end. This was to be used    */
  5397. /* for localized string sorting code. However, for the last 4 years, string sorting has */
  5398. /* been handled with the 'itl2' resource, and the local routine field has been ignored. */
  5399. /* In most 'itl1' resources, it just contains a single RTS instruction (hex $4E75).     */
  5400. /* This field is now used to flag the 7.0 extensions. If it is $4E75, the old format is */
  5401. /* assumed. If it is $A89F, the new format is assumed: $A89F is unimplemented trap,     */
  5402. /* which would never have occurred as the first instruction in a local routine. Old     */
  5403. /* 'itl1' resources with a local routine will be handled correctly by the code, but can */
  5404. /* not be Rezzed or DeRezzed with this template. They should be updated to either have  */
  5405. /* $4E75 in the local routine field, with nothing else following, or to have $A89F in   */
  5406. /* the local routine filed, followed by extended data in the format given below. The    */
  5407. /* version field was not used to mark this change because various current 'itl1'        */
  5408. /* resources use very different version numbers, including 0, 1, and 128.               */
  5409.  
  5410. type 'itl1' {
  5411.         /* Day names */
  5412.         array [7] {
  5413.             pstring[15];                                        /* Sunday, Monday...    */
  5414.         };
  5415.  
  5416.         /* Month names */
  5417.         array [12] {
  5418.             pstring[15];                                        /* January, February... */
  5419.         };
  5420.  
  5421.         byte        dayName, none=255;                          /* suppressDay          */
  5422.         byte        dayMonYear, monDayYear = 255;               /* longDate format      */
  5423.         byte        noDayLeadZero, dayLeadZero = 255;           /* dayLeading0          */
  5424.         byte;                                                   /* abbrLen              */
  5425.         string[4];                                              /* st0                  */
  5426.         string[4];                                              /* st1                  */
  5427.         string[4];                                              /* st2                  */
  5428.         string[4];                                              /* st3                  */
  5429.         string[4];                                              /* st4                  */
  5430.         byte        Region;                                     /* region code          */
  5431.         byte;                                                   /* version              */
  5432.         switch  {
  5433.             case oldFormat:
  5434.                 key hex integer = $4E75;                        /* old format key       */
  5435.             case extFormat:
  5436.                 key hex integer = $A89F;                        /* extended format key  */
  5437.                 hex integer;                                    /* version              */
  5438.                 hex integer;                                    /* format               */
  5439.                 integer;                                        /* calendar code        */
  5440.                 unsigned longint = extraDays >> 3;                          /* offset to extraDays table    */
  5441.                 unsigned longint = (endExtraDays - extraDays) >> 3;         /* length of extraDays table    */
  5442.                 unsigned longint = extraMonths >> 3;                        /* offset to extraMonths table  */
  5443.                 unsigned longint = (endExtraMonths - extraMonths) >> 3;     /* length of extraMonths table  */
  5444.                 unsigned longint = abbrevDays >> 3;                         /* offset to abbrevDays table   */
  5445.                 unsigned longint = (endAbbrevDays - abbrevDays) >> 3;       /* length of abbrevDays table   */
  5446.                 unsigned longint = abbrevMonths >> 3;                       /* offset to abbrevMonths table */
  5447.                 unsigned longint = (endAbbrevMonths - abbrevMonths) >> 3;   /* length of abbrevMonths table */
  5448.                 unsigned longint = extraSeparators >> 3;                    /* offset to extraSeparators table  */  /*<10>*/
  5449.                 unsigned longint = (endExtraSeparators - extraSeparators) >> 3; /* len of extraSeparators table */  /*<10>*/
  5450. extraDays:
  5451.                 integer = $$CountOf(extraDaysArray);            /* number of extra days */
  5452.                 array extraDaysArray {                          /* array of extra names     */
  5453.                     pstring;                                    /* extra day name string    */
  5454.                 };
  5455. endExtraDays:
  5456. extraMonths:
  5457.                 integer = $$CountOf(extraMonthArray);           /* number of extra months   */
  5458.                 array extraMonthArray {                         /* array of extra names     */
  5459.                     pstring;                                    /* extra month name string  */
  5460.                 };
  5461. endExtraMonths:
  5462. abbrevDays:
  5463.                 integer = $$CountOf(abbrevDaysArray);           /* number of abbrev days    */
  5464.                 array abbrevDaysArray {                         /* array of abbrev names    */
  5465.                     pstring;                                    /* abbrev day name string   */
  5466.                 };
  5467. endAbbrevDays:
  5468. abbrevMonths:
  5469.                 integer = $$CountOf(abbrevMonthArray);          /* number of abbrev months  */
  5470.                 array abbrevMonthArray {                        /* array of abbrev names    */
  5471.                     pstring;                                    /* abbrev month name string */
  5472.                 };
  5473. endAbbrevMonths:
  5474. extraSeparators:
  5475.                 integer = $$CountOf(extraSeparatorsArray);      /* number of extra separators   */  /*<10>*/
  5476.                 array extraSeparatorsArray {                    /* array of separator strings   */  /*<10>*/
  5477.                     pstring;                                    /* separator string             */  /*<10>*/
  5478.                 };
  5479. endExtraSeparators:
  5480.         };
  5481. };
  5482. æC 
  5483.  
  5484. æKY itl2
  5485. æFr SysTypes.r
  5486. æT 
  5487. æD /*----------------------------itl2 • International String Comparison Package Hooks-----*/
  5488. /*
  5489.  * Note that this type assumes a particular ordering of code and tables, although
  5490.  * that order is not required in order for the resource to be used correctly by
  5491.  * the code.
  5492.  *
  5493.  * There is some ugly stuff at the end, because
  5494.  * 1. The itl2 resource has several different formats.
  5495.  * 2. The offset to the FindScriptTable is only present in one format: when length
  5496.  *    fields exist.
  5497.  * 3. Even in that format, the FindScriptTable itself is optional; if it is not
  5498.  *    present, the offset to it is 0.
  5499.  * 4. The optional FindScriptTable is preceded by the variable-length wrapTable.
  5500.  *    To determine the wrapTable length when DeRezzing, we need to use the offset
  5501.  *    to FindScriptTable if the offset exists and is nonzero. Otherwise, wrapTable
  5502.  *    extends to the end of the resource.
  5503.  * The single hex string at the end of the wrapTable is actually represented in
  5504.  * three different arrays whose dimensions are logical expressions. For a given
  5505.  * format, one of the arrays will have a dimension 1, and the others will have a
  5506.  * dimension 0.
  5507.  */
  5508.  
  5509. type 'itl2' {
  5510.         switch {
  5511.             case pre604:
  5512.                 integer = initHook1 >> 3;                           /* init hook offset         */
  5513.                 integer = fetchHook1 >> 3;                          /* fetch hook offset        */
  5514.                 integer = vernierHook1 >> 3;                        /* vernier hook offset      */
  5515.                 integer = projectHook1 >> 3;                        /* project hook offset      */
  5516.                 bitstring[15] = rsvd1Hook1 >> 4;
  5517.                 key boolean = 0;
  5518.                 integer = rsvd2Hook1 >> 3;                          /* rsvd2 hook offset        */
  5519.     initHook1:
  5520.                 hex string [(fetchHook1 - initHook1) >> 3];         /* initHook code            */
  5521.     fetchHook1:
  5522.                 hex string [(vernierHook1 - fetchHook1) >> 3];      /* fetchHook code           */
  5523.     vernierHook1:
  5524.                 hex string [(projectHook1 - vernierHook1) >> 3];    /* vernierHook code         */
  5525.     projectHook1:
  5526.                 hex string [(rsvd1Hook1 - projectHook1) >> 3];      /* projectHook code         */
  5527.     rsvd1Hook1:
  5528.                 hex string [(rsvd2Hook1 - rsvd1Hook1) >> 3];        /* rsvd1Hook code           */
  5529.     rsvd2Hook1:
  5530.                 hex string;                                         /* rsvd2Hook/exitHook code  */
  5531.             case atLeast604:
  5532.                 integer = initHook2 >> 3;                           /* init hook offset         */
  5533.                 integer = fetchHook2 >> 3;                          /* fetch hook offset        */
  5534.                 integer = vernierHook2 >> 3;                        /* vernier hook offset      */
  5535.                 integer = projectHook2 >> 3;                        /* project hook offset      */
  5536.                 bitstring[15] = -1;
  5537.                 key boolean = 1;
  5538.                 integer = rsvd2Hook2 >> 3;                          /* rsvd2 hook offset        */
  5539.                 integer = typeList >> 3;                            /* TypeList offset          */
  5540.                 integer = classArray >> 3;                          /* ClassArray offset        */
  5541.                 integer = upperList >> 3;                           /* UpperList offset         */
  5542.                 integer = lowerList >> 3;                           /* LowerList offset         */
  5543.                 integer = upperNoMarkList >> 3;                     /* UpperNoMarkList offset   */
  5544.                 integer = wordTable >> 3;                           /* WordTable offset         */
  5545.                 integer = wrapTable >> 3;                           /* WrapTable offset         */
  5546.                 integer = noMarkList >> 3;                          /* NoMarkList offset        */
  5547.                 unsigned hex integer;                               /* version number           */
  5548.     formatCode:
  5549.                 switch {
  5550.                     case noLengthFields:
  5551.                         key integer = 0;                            /* format code              */
  5552.     extraHdr:
  5553.                         hex string [(initHook2 - extraHdr) >> 3];   /* extra header, if any     */
  5554.                     case haveLengthFields:
  5555.                         key integer = 1;                            /* format code              */
  5556.                         wide array [14] {
  5557.                             integer;                                /* length fields            */
  5558.                         };
  5559.     findScriptTableOffset:
  5560.                         integer = findScriptTable[1,1] >> 3;        /* findScriptTable offset   */
  5561.                         integer;                                    /* findScriptTable length   */
  5562.                 };
  5563.     initHook2:
  5564.                 hex string [(fetchHook2 - initHook2) >> 3];         /* initHook code            */
  5565.     fetchHook2:
  5566.                 hex string [(vernierHook2 - fetchHook2) >> 3];      /* fetchHook code           */
  5567.     vernierHook2:
  5568.                 hex string [(projectHook2 - vernierHook2) >> 3];    /* vernierHook code         */
  5569.     projectHook2:
  5570.                 hex string [(rsvd2Hook2 - projectHook2) >> 3];      /* projectHook code         */
  5571.     rsvd2Hook2:
  5572.                 hex string [(classArray - rsvd2Hook2) >> 3];        /* rsvd2Hook/exitHook code  */                                                  /* code */
  5573.     classArray:
  5574.                 hex string [(typeList - classArray) >> 3];          /* classArray table         */
  5575.     typeList:
  5576.                 hex string [(upperList - typeList) >> 3];           /* typeList table           */
  5577.     upperList:
  5578.                 hex string [(lowerList - upperList) >> 3];          /* upperList table          */
  5579.     lowerList:
  5580.                 hex string [(upperNoMarkList - lowerList) >> 3];    /* lowerList table          */
  5581.     upperNoMarkList:
  5582.                 hex string [(noMarkList - upperNoMarkList) >> 3];   /* upperNoMarkList table    */
  5583.     noMarkList:
  5584.                 hex string [(wordTable - noMarkList) >> 3];         /* noMarkList table         */
  5585.     wordTable:
  5586.                 switch {
  5587.                     case tupleFormat:
  5588.                         key boolean = 0;
  5589.                         hex bitstring[7];                           /* class for null           */
  5590.                         hex string [255];                           /* class for other chars    */
  5591.                         integer = $$CountOf(WordTuples) - 1;
  5592.                         wide array WordTuples {                     /* packed tuple defns       */
  5593.                             hex unsigned integer;
  5594.                         };
  5595.                     case stateFormat:
  5596.                         key boolean = 1;
  5597.                         bitstring[15];                              /* flags & format           */
  5598.                         unsigned hex integer;                       /* version                  */
  5599.                         integer = (wordClass - wordTable) >> 3;     /* offset to class table    */
  5600.                         integer = (wordAux - wordTable) >> 3;       /* offset to aux class tbl  */
  5601.                         integer = (wordBackwd - wordTable) >> 3;    /* offset to back state tbl */
  5602.                         integer = (wordForwd - wordTable) >> 3;     /* offset to forw state tbl */
  5603.                         integer;                                    /* doBackupMin              */
  5604.     wordLength:
  5605.                         integer;                                    /* length                   */
  5606.     wordClass:
  5607.                         hex string [(wordAux - wordClass) >> 3];    /* class table              */
  5608.     wordAux:
  5609.                         hex string [(wordBackwd - wordAux) >> 3];   /* aux class table          */
  5610.     wordBackwd:
  5611.                         hex string [(wordForwd - wordBackwd) >> 3]; /* state table for backup   */
  5612.     wordForwd:
  5613.                         hex string [$$Word(wordLength) - ((wordForwd - wordTable) >> 3)]; /* tbl */
  5614.                 };
  5615.     endWordTable:
  5616.                 hex string [(wrapTable - endWordTable) >> 3];       /* extra stuff, if any      */
  5617.     wrapTable:
  5618.                 switch {
  5619.                     case tupleFormat:
  5620.                         key boolean = 0;
  5621.                         hex bitstring[7];                           /* class for null           */
  5622.                         hex string [255];                           /* class for other chars    */
  5623.                         integer = $$CountOf(WrapTuples) - 1;
  5624.                         wide array WrapTuples {                     /* packed tuple defns       */
  5625.                             hex unsigned integer;
  5626.                         };
  5627.                     case stateFormat:
  5628.                         key boolean = 1;
  5629.                         bitstring[15];                              /* flags & format           */
  5630.                         unsigned hex integer;                       /* version                  */
  5631.                         integer = (wrapClass - wrapTable) >> 3;     /* offset to class table    */
  5632.                         integer = (wrapAux - wrapTable) >> 3;       /* offset to aux class tbl  */
  5633.                         integer = (wrapBackwd - wrapTable) >> 3;    /* offset to back state tbl */
  5634.                         integer = (wrapForwd - wrapTable) >> 3;     /* offset to forw state tbl */
  5635.                         integer;                                    /* doBackupMin              */
  5636.     wrapLength:
  5637.                         integer;                                    /* length                   */
  5638.     wrapClass:
  5639.                         hex string [(wrapAux - wrapClass) >> 3];    /* class table              */
  5640.     wrapAux:
  5641.                         hex string [(wrapBackwd - wrapAux) >> 3];   /* aux class table          */
  5642.     wrapBackwd:
  5643.                         hex string [(wrapForwd - wrapBackwd) >> 3]; /* state table for backup   */
  5644.     wrapForwd:
  5645.                         hex string [$$Word(wrapLength) - ((wrapForwd - wrapTable) >> 3)]; /* tbl */
  5646.                 };
  5647.     endWrapTable:
  5648.                 array [$$Word(formatCode) == 0] {
  5649.                     hex string;                                     /* extra stuff, if any      */
  5650.                 };
  5651.                 array [$$Word(formatCode) == 1] {
  5652.                     array [$$Word(findScriptTableOffset) == 0] {
  5653.                         hex string;                                 /* extra stuff, if any      */
  5654.                     };
  5655.                     array [$$Word(findScriptTableOffset) != 0] {
  5656.                         hex string [(findScriptTable[1,1] - endWrapTable) >> 3]; /* xtra stuff? */
  5657.                     };
  5658.                 };
  5659.                 array [$$Word(formatCode) == 1] {
  5660.                     array [$$Word(findScriptTableOffset) != 0] {
  5661.     findScriptTable:
  5662.                         hex string;                                 /* findScriptTable          */
  5663.                     };
  5664.                 };
  5665.         };
  5666. };
  5667. æC 
  5668.  
  5669. æKY itl4
  5670. æFr SysTypes.r
  5671. æT 
  5672. æD /*----------------------------itl4 • International Tokenizer----------------------------*/
  5673. type 'itl4' {
  5674.         unsigned hex integer;                                       /* flags                    */
  5675.         literal longint = 'itl4';                                   /* resource type            */
  5676.         integer;                                                    /* resource ID              */
  5677.         unsigned hex integer;                                       /* version number           */
  5678.     formatCode:
  5679.         switch {
  5680.             case noLengthFields:
  5681.                 key integer = 0;                                    /* format code              */
  5682.                 integer = 0;                                        /* reserved                 */
  5683.                 longint = 0;                                        /* reserved                 */
  5684.                 integer = 8;                                        /* # of table entries       */
  5685.                 unsigned longint = mapCharTable >> 3;               /* MapChar offset           */
  5686.                 unsigned longint = stringCopyCode >> 3;             /* stringCopy offset        */
  5687.                 unsigned longint = extendFetchCode >> 3;            /* extendFetch offset       */
  5688.                 unsigned longint = unTokenTable >> 3;               /* unToken offset           */
  5689.                 unsigned longint = defaultPartsTable >> 3;          /* defaultParts offset      */
  5690.                 unsigned longint = whiteSpaceList[1] >> 3;          /* whiteSpaceList offset    */
  5691.                 unsigned longint = 0;                               /* reserved offset          */
  5692.                 unsigned longint = 0;                               /* reserved offset          */
  5693.             case haveLengthFields:
  5694.                 key integer = 1;                                    /* format code              */
  5695.                 integer = 0;                                        /* reserved                 */
  5696.                 longint = 0;                                        /* reserved                 */
  5697.                 integer = 8;                                        /* # of table entries       */
  5698.                 unsigned longint = mapCharTable >> 3;               /* MapChar offset           */
  5699.                 unsigned longint = stringCopyCode >> 3;             /* stringCopy offset        */
  5700.                 unsigned longint = extendFetchCode >> 3;            /* extendFetch offset       */
  5701.                 unsigned longint = unTokenTable >> 3;               /* unToken offset           */
  5702.                 unsigned longint = defaultPartsTable >> 3;          /* defaultPartsTable offset */
  5703.                 unsigned longint = whiteSpaceList[1] >> 3;          /* whiteSpaceList offset    */
  5704.                 unsigned longint = 0;                               /* reserved offset          */
  5705.                 unsigned longint = 0;                               /* reserved offset          */
  5706.                 integer;                                            /* MapChar length           */
  5707.                 integer;                                            /* StringCopy length        */
  5708.                 integer;                                            /* extendFetch length       */
  5709.                 integer;                                            /* unToken length           */
  5710.                 integer;                                            /* defaultPartsTable length */
  5711.                 integer;                                            /* whiteSpaceList length    */
  5712.                 integer = 0;                                        /* reserved length          */
  5713.                 integer = 0;                                        /* reserved length          */
  5714.         };
  5715.  
  5716.  
  5717.         unsigned longint;                                           /* extendFetch abort offset */
  5718.         longint = $$CountOf(MapChar);
  5719.     mapCharTable:
  5720.         array MapChar {
  5721.             byte;
  5722.         };
  5723.  
  5724.     extendFetchCode:
  5725.         hex string [(stringCopyCode - extendFetchCode) >> 3];       /* extendFetch code         */
  5726.     stringCopyCode:
  5727.         hex string [(unTokenTable - stringCopyCode) >> 3];          /* stringCopy code          */
  5728.     unTokenTable:
  5729.         integer = (defaultPartsTable - unTokenTable) >> 3;          /* unToken table size       */
  5730.     unTokenCount:
  5731.         integer = $$CountOf(unTokenStringOffsets) - 1;
  5732.         array unTokenStringOffsets {
  5733.             integer;                                                /* offset to token strings  */
  5734.         };
  5735.         array [$$Word(unTokenCount) + 1] {
  5736.             pstring;                                                /* token strings            */
  5737.             align word;
  5738.         };
  5739.  
  5740.     defaultPartsTable:
  5741.         integer;                                                    /* version number           */
  5742.         wide array [31] {
  5743.             unsigned byte;
  5744.             char;
  5745.         };
  5746.         integer;                                                    /* size                     */
  5747.         wide array [10] {
  5748.             unsigned byte;
  5749.             char;
  5750.         };
  5751.         integer;                                                    /* size                     */
  5752.         wide array [10] {
  5753.             unsigned byte;
  5754.             char;
  5755.         };
  5756.         integer;                                                    /* size                     */
  5757.         wide array [10] {
  5758.             unsigned byte;
  5759.             char;
  5760.         };
  5761.         integer;                                                    /* size                     */
  5762.         wide array [10] {
  5763.             unsigned byte;
  5764.             char;
  5765.         };
  5766.         hex string [20] = "";
  5767.  
  5768.         array [$$BitField(formatCode,30*8,32) != 0] {
  5769.     whiteSpaceList:
  5770.             integer = (whiteSpaceListEnd[1] - whiteSpaceList[1]) >> 3; /* whiteSpaceList size   */
  5771.     whiteSpaceListCount:
  5772.             integer = $$CountOf(whiteSpaceStringOffsets);
  5773.             array whiteSpaceStringOffsets {
  5774.                 integer;                                            /* offset to string         */
  5775.             };
  5776.             array [$$Word(whiteSpaceListCount[1])] {
  5777.                 pstring;                                            /* whitespace string        */
  5778.                 align word;
  5779.             };
  5780.     whiteSpaceListEnd:
  5781.         };
  5782. };
  5783. æC 
  5784.  
  5785. æKY itlb
  5786. æFr SysTypes.r
  5787. æT 
  5788. æD /*----------------------------itlb • International Script Bundle------------------------*/
  5789. type 'itlb' {
  5790.         integer;                                                /* itl0 id number       */              /*<6>*/
  5791.         integer;                                                /* itl1 id number       */              /*<6>*/
  5792.         integer;                                                /* itl2 id number       */              /*<6>*/
  5793.         unsigned hex integer;                                   /* script flags - see
  5794.                                                                    smScriptFlags info
  5795.                                                                    in ScriptEqu.a       */
  5796.         integer;                                                /* itl4 id number       */              /*<6>*/
  5797.         integer;                                                /* id number of optional itl5, or 0 */  /*<13>*/
  5798.         unsigned integer;                                       /* Script language      */
  5799.         unsigned integer;                                       /* high byte - number
  5800.                                                                    representation code,
  5801.                                                                    low byte - date
  5802.                                                                    representation code  */
  5803.         integer;                                                /* KCHR id number       */              /*<6>*/
  5804.         integer;                                                /* id no. of SICN or kcs#,kcs4,kcs8 */  /*<6>*/
  5805.         unsigned longint;                                       /* size of script's local record    */  /*<6>*/
  5806.         integer;                                                /* default monospace FOND ID        */  /*<6>*/
  5807.         unsigned integer;                                       /* default monospace font size      */  /*<6>*/
  5808.         integer;                                                /* preferred FOND ID                */  /*<6>*/
  5809.         unsigned integer;                                       /* preferred font size              */  /*<6>*/
  5810.         integer;                                                /* default small FOND ID            */  /*<6>*/
  5811.         unsigned integer;                                       /* default small font size          */  /*<6>*/
  5812.         integer;                                                /* default system FOND ID           */  /*<6>*/
  5813.         unsigned integer;                                       /* default system font size         */  /*<6>*/
  5814.         integer;                                                /* default application FOND ID      */  /*<6>*/
  5815.         unsigned integer;                                       /* default application font size    */  /*<6>*/
  5816.         integer;                                                /* default Help Mgr FOND ID         */  /*<6>*/
  5817.         unsigned integer;                                       /* default Help Mgr font size       */  /*<6>*/
  5818.         hex byte;                                               /* valid styles for script              /*<10>*/
  5819.         hex byte;                                               /* alias style for script           */  /*<10>*/
  5820. };
  5821. æC 
  5822.  
  5823. æKY itlc
  5824. æFr SysTypes.r
  5825. æT 
  5826. æD /*----------------------------itlc • International Configuration------------------------*/
  5827. type 'itlc' {
  5828.         unsigned integer;                                       /* system script code   */
  5829.         unsigned integer;                                       /* keyboard cache size  */
  5830.         byte            noFontForce, fontForce = 255;           /* font force flag      */
  5831.         byte            noIntlForce, intlForce = 255;           /* intl force flag      */
  5832.         byte            noOldKeyboard, oldKeyboard = 255;       /* old keyboard         */
  5833.         unsigned hex byte;                                      /* general flags - see
  5834.                                                                    smGenFlags info in
  5835.                                                                    ScriptEqu.a          */
  5836.         integer;                                                /* script icon offset   */
  5837.         byte                rightOffset, leftOffset = 255;      /* menu side for offset */
  5838.         byte;                                                   /* icon data (rsvd)     */
  5839.         unsigned integer    Region;                             /* pref. region code    */
  5840.         hex string [34];                                        /* reserved             */
  5841. };
  5842. æC 
  5843.  
  5844. æKY itlk
  5845. æFr SysTypes.r
  5846. æT 
  5847. æD /*----------------------------itlk • Keyboard-dependent Remapping-----------------------*/
  5848. type 'itlk' {
  5849.         integer = $$CountOf(RemapItemArray);
  5850.         wide array RemapItemArray {
  5851.             integer;                                            /* keyboard type        */
  5852.             hex byte;                                           /* old modifier bits    */
  5853.             byte;                                               /* old key code         */
  5854.             hex byte;                                           /* modifier bits mask   */
  5855.             byte;                                               /* key code mask        */
  5856.             hex byte;                                           /* new modifier bits    */
  5857.             byte;                                               /* new key code         */
  5858.         };
  5859. };
  5860. æC 
  5861.  
  5862. æKY itlm
  5863. æFr SysTypes.r
  5864. æT 
  5865. æD /*----------------------------itlm • Multiscript mapping/sorting-----------------------*/
  5866. type 'itlm' {
  5867.         unsigned hex integer;                                   /* version number                   */
  5868.         unsigned hex integer;                                   /* format code                      */
  5869.         unsigned integer = 3;                                   /* number of offset/length pairs    */
  5870.         unsigned longint = scriptData >> 3;                     /* offset to scriptData table       */
  5871.         unsigned longint = (endScriptData - scriptData) >> 3;   /* length of scriptData table       */
  5872.         unsigned longint = langData >> 3;                       /* offset to langData table         */
  5873.         unsigned longint = (endLangData - langData) >> 3;       /* length of langData table         */
  5874.         unsigned longint = regionData >> 3;                     /* offset to regionData table       */
  5875.         unsigned longint = (endRegionData - regionData) >> 3;   /* length of regionData table       */
  5876.  
  5877. scriptData:
  5878.         integer Script;                             /* max script code for script->lang mapping     */
  5879.         integer Language;                           /* default lang code for scripts not in table   */
  5880.         integer = $$CountOf(scriptArray);           /* number of entries in table                   */
  5881.         array scriptArray {                         /* entries are ordered by script sort order     */
  5882.             integer Script;                         /* script code                                  */
  5883.             integer Language;                       /* default language code for script             */
  5884.         };
  5885. endScriptData:
  5886.  
  5887. langData:
  5888.         integer Language;                           /* max lang code for lang->script mapping       */
  5889.         integer Script;                             /* default script code for langs not in table   */
  5890.         integer = $$CountOf(langArray);             /* number of entries in table                   */
  5891.         array langArray {                           /* entries are ordered by lang sort order       */
  5892.             integer Language;                       /* language code                                */
  5893.             integer Script;                         /* code of script to which this lang belongs    */
  5894.         };
  5895. endLangData:
  5896.  
  5897. regionData:
  5898.         integer Region;                             /* max region code for region->lang mapping     */
  5899.         integer Language;                           /* default lang code for regions not in table   */
  5900.         integer = $$CountOf(regionArray);           /* number of entries in table                   */
  5901.         array regionArray {                         /* entries are ordered by region sort order     */
  5902.             integer Region;                         /* region code                                  */
  5903.             integer Language;                       /* parent language code for region              */
  5904.         };
  5905. endRegionData:
  5906. };
  5907.  
  5908. æC 
  5909.  
  5910. æKY 'KCAP'
  5911. æFr SysTypes.r
  5912. æT 
  5913. æD /*----------------------------KCAP • Physical Layout of Keyboard------------------------*/
  5914. type 'KCAP' {
  5915.         rect;                                                   /* boundsRect           */
  5916.         rect;                                                   /* textRect             */
  5917.         integer = $$CountOf(MainArray);
  5918.         array MainArray {
  5919.             integer = $$CountOf(ShapeArray) - 1;
  5920.             wide array ShapeArray {
  5921.                 point;                                          /* shapePoint           */
  5922.             };
  5923.             integer = $$CountOf(KeyArray) - 1;
  5924.             wide array KeyArray {
  5925.                 byte;                                           /* mask                 */
  5926.                 boolean             or, and;
  5927.                 bitstring[7];                                   /* keyCode              */
  5928.                 integer;                                        /* dv                   */
  5929.                 integer;                                        /* dh                   */
  5930.             };
  5931.         };
  5932. };
  5933. æC 
  5934.  
  5935. æKY KCHR
  5936. æFr SysTypes.r
  5937. æT 
  5938. æD /*----------------------------KCHR • ASCII Mapping (software)---------------------------*/
  5939. type 'KCHR' {
  5940.         integer;                                                /* Version              */
  5941.         wide array [$100] {                                     /* Indexes              */
  5942.             byte;
  5943.         };
  5944.         integer = $$CountOf(TableArray);
  5945.         array TableArray {
  5946.             wide array [$80] {                                  /* ASCII characters     */
  5947.                 char;
  5948.             };
  5949.         };
  5950.         integer = $$CountOf(DeadArray);
  5951.         array DeadArray {
  5952.             byte;                                               /* Table number         */
  5953.             byte;                                               /* Virtual keycode      */
  5954.             integer = $$CountOf(CompletorArray);
  5955.             wide array CompletorArray {
  5956.                 char;                                           /* Completor char       */
  5957.                 char;                                           /* Substituting char    */
  5958.             };
  5959.             char;                                               /* No match char        */
  5960.             char;                                               /* 16-bits for the times
  5961.                                                                    when 8 isn't enough  */
  5962.         };
  5963. };
  5964. æC 
  5965.  
  5966. æKY KMAP
  5967. æFr SysTypes.r
  5968. æT 
  5969. æD /*----------------------------KMAP • Keyboard Mapping (hardware)------------------------*/
  5970. type 'KMAP' {
  5971.         integer;                                                /* ID                   */
  5972.         integer;                                                /* Version              */
  5973.         wide array [$80] {                                      /* Raw to virtual       */
  5974.             byte;                                               /*  keycode map         */
  5975.         };
  5976.         integer = $$CountOf(ExceptionArray);
  5977.         wide array ExceptionArray {
  5978.             byte;                                               /* Raw keycode          */
  5979.             boolean         noXor, Xor;
  5980.             fill bit[3];
  5981.             bitstring[4];                                       /* ADB op               */
  5982.             pstring;
  5983.         };
  5984. };
  5985. æC 
  5986.  
  5987. æKY KSWP
  5988. æFr SysTypes.r
  5989. æT 
  5990. æD /*----------------------------KSWP • Keyboard Swapping----------------------------------*/
  5991. type 'KSWP' {
  5992.         /* The expression below that calculates the number of elements in the
  5993.            array is complicated because of the way that $$ResourceSize works.
  5994.            $$ResourceSize returns the size of the resource.  When derez'ing a
  5995.            resource, the size of the resource is known from the start.  When
  5996.            rez'ing a resource, however, the size starts out at zero and is
  5997.            incremented each time a field is appended to the resource data.  In
  5998.            other words, while rez'ing, $$ResourceSize rarely returns the final
  5999.            size of the resource.  When rez'ing a KSWP, the array size expression
  6000.            is not evaluated until all of the array elements have been parsed.
  6001.            Since each array element is 4 bytes long (if you add up all the fields),
  6002.            the number of array elements is the size of the resource at that point
  6003.            divided by four.  Since the preprocessor value of "DeRez" is zero when
  6004.            Rez'ing, the expression is equivalent to $$ResourceSize / 4.  When
  6005.            derez'ing a KSWP, the value of $$ResourceSize is constant: always the
  6006.            total size of the resource, in bytes.  Since the resource contains 4
  6007.            bytes of fill at the end (which happens to be the size of an array
  6008.            element), we have to take that in consideration when calculating the
  6009.            size of the array.  Note that the preprocessor value of "DeRez" is one,
  6010.            when derez'ing.
  6011.         */
  6012.         wide array [$$ResourceSize / 4 - DeRez]{
  6013.             hex integer     Roman, Japanese, Chinese, Korean,   /* script code or verb  */
  6014.                             Arabic, Hebrew, Greek,
  6015.                             Rotate = -1, System = -2,
  6016.                             Alternate = -3, RotateKybd = -4;    /* <20> */
  6017.             unsigned byte;                                      /* virtual key code     */
  6018.             /* Modifiers */
  6019.             fill bit;                                           /* rControlOn,rControlOff*/
  6020.             fill bit;                                           /* rOptionOn,rOptionOff */
  6021.             fill bit;                                           /* rShiftOn,rShiftOff   */
  6022.             boolean     controlOff, controlOn;
  6023.             boolean     optionOff, optionOn;
  6024.             fill bit;                                           /* capsLockOn,capsLockOff*/
  6025.             boolean     shiftOff, shiftOn;
  6026.             boolean     commandOff, commandOn;
  6027.         };
  6028.         fill long;
  6029. };
  6030. æC 
  6031.  
  6032. æKY mach
  6033. æFr SysTypes.r
  6034. æT 
  6035. æD /*----------------------------mach • cdev filtering-------------------------------------*/
  6036. type 'mach' {
  6037.         unsigned hex integer;                                               /* Softmask */
  6038.         unsigned hex integer;                                               /* Hardmask */
  6039. };
  6040. æC 
  6041.  
  6042. æKY mcky
  6043. æFr SysTypes.r
  6044. æT 
  6045. æD /*----------------------------mcky • Mouse Tracking-------------------------------------*/
  6046. type 'mcky' {
  6047.         array [8] {
  6048.             unsigned byte;
  6049.         };
  6050. };
  6051. æC 
  6052.  
  6053. æKY mppc
  6054. æFr SysTypes.r
  6055. æT 
  6056. æD /*----------------------------mppc • MPP Configuration Resource-------------------------*/
  6057. type 'mppc' {
  6058.         unsigned hex longint;                                   /* Info passed to drvr  */
  6059.         byte;                                                   /* Override version #   */
  6060.         fill byte;                                              /* Reserved             */
  6061. };
  6062. æC 
  6063.  
  6064. æKY NFNT
  6065. æFr SysTypes.r
  6066. æT 
  6067. æD /*----------------------------NFNT • Font Description-----------------------------------*/
  6068. type 'NFNT' as 'FONT';
  6069. æC 
  6070.  
  6071. æKY nrct
  6072. æFr SysTypes.r
  6073. æT 
  6074. æD /*----------------------------nrct • Rectangle List-------------------------------------*/
  6075. type 'nrct' {
  6076.         integer = $$CountOf(RectArray);                         /* Number of rectangles */
  6077.         array RectArray {
  6078.             rect;
  6079.         };
  6080. };
  6081.  
  6082. æC 
  6083.  
  6084. æKY ROv#
  6085. æFr SysTypes.r
  6086. æT 
  6087. æD /*----------------------------ROv# • ROM Resource Override------------------------------*/
  6088. type 'ROv#' {
  6089.         unsigned hex integer;                                   /* Version # of ROM     */
  6090.         integer = $$CountOf(typeList) - 1;                      /* Number of resources  */
  6091.         wide array typeList {
  6092.             literal longint;                                    /* Resource type        */
  6093.             integer;                                            /* Resource id          */
  6094.         };
  6095. };
  6096. æC 
  6097.  
  6098. æKY scrn
  6099. æFr SysTypes.r
  6100. æT 
  6101. æD /*----------------------------scrn • Screen Configuration-------------------------------*/
  6102. type 'scrn' {
  6103.         integer = $$CountOf(Device);                            /* Number of displays   */
  6104.         wide array Device {
  6105.             unsigned hex integer;                               /* sRsrc Type           */
  6106.             integer;                                            /* Slot number          */
  6107.             unsigned hex longint;                               /* dCtlDevBase          */
  6108.             integer;                                            /* sRsrcID for mode     */
  6109.             integer = $77FE;                                    /* Flag mask            */
  6110.             Boolean         inactive, active;                   /* Device active flag   */
  6111.             fill bit[3];                                        /* reserved             */
  6112.             Boolean         auxillaryScreen, mainScreen;        /* Main screen flag     */
  6113.             unsigned bitstring[10] = 0;                         /* reserved             */
  6114.             Boolean         monochrome, color;                  /* Device type          */
  6115.             integer;                                            /* Rsrc ID of 'clut'    */
  6116.             integer;                                            /* Rsrc ID of 'gama'    */
  6117.             Rect;                                               /* Device's global rect */
  6118.             integer = $$CountOf(ControlCalls);                  /* # of control calls   */
  6119.             wide array ControlCalls {
  6120.                 integer;                                        /* csCode for this call */
  6121.                 wstring;                                        /* param block data     */
  6122.                 align word;
  6123.  
  6124.             };
  6125.         };
  6126. };
  6127. æC 
  6128.  
  6129. æKY snd
  6130. æFr SysTypes.r
  6131. æT 
  6132. æD /*----------------------------snd  • Sound----------------------------------------------*/
  6133. /*----------------------------snd  • Sound----------------------------------------------*/
  6134. type 'snd ' {
  6135.         switch {
  6136.             case FormatOne:
  6137.                 key unsigned integer = $0001;
  6138.                 unsigned integer = $$CountOf(Synthesizers);
  6139.                 wide array Synthesizers {
  6140.                     /* Resource ID of synthesizer/modifer */
  6141.                     integer     squareWaveSynth     = $0001,
  6142.                                 waveTableSynth      = $0003,
  6143.                                 sampledSynth        = $0005;
  6144.                     longint;                                    /* init parameter       */
  6145.                 };
  6146.  
  6147.             case FormatTwo:
  6148.                 key unsigned integer = $0002;
  6149.                 integer     free = 0, keepInMemory = 256+1;     /* Space for refe count */
  6150.         };
  6151.         unsigned integer = $$CountOf(SoundCmnds);
  6152.         wide array SoundCmnds {
  6153.             boolean     noData, hasData;
  6154.             switch {
  6155.                 case nullCmd:
  6156.                     key bitstring[15] = 0;
  6157.                     fill word;                                  /* Param 1 = nil        */
  6158.                     fill long;                                  /* Param 2 = nil        */
  6159.                 case quietCmd:
  6160.                     key bitstring[15] = 3;
  6161.                     fill word;                                  /* Param 1 = nil        */
  6162.                     fill long;                                  /* Param 2 = nil        */
  6163.                 case flushCmd:
  6164.                     key bitstring[15] = 4;
  6165.                     fill word;                                  /* Param 1 = nil        */
  6166.                     fill long;                                  /* Param 2 = nil        */
  6167.                 case waitCmd:
  6168.                     key bitstring[15] = 10;
  6169.                     integer     oneSecond = 2000;               /* Duration             */
  6170.                     fill long;                                  /* Param 2 = nil        */
  6171.                 case pauseCmd:
  6172.                     key bitstring[15] = 11;
  6173.                     fill word;                                  /* Param 1 = nil        */
  6174.                     fill long;                                  /* Param 2 = nil        */
  6175.                 case resumeCmd:
  6176.                     key bitstring[15] = 12;
  6177.                     fill word;                                  /* Param 1 = nil        */
  6178.                     fill long;                                  /* Param 2 = nil        */
  6179.                 case callBackCmd:
  6180.                     key bitstring[15] = 13;
  6181.                     integer;                                    /* User-defined         */
  6182.                     longint;                                    /* User-defined         */
  6183.                 case syncCmd:
  6184.                     key bitstring[15] = 14;
  6185.                     integer;                                    /* Count                */
  6186.                     longint;                                    /* Identifier           */
  6187.                 case emptyCmd:
  6188.                     key bitstring[15] = 15;
  6189.                     fill word;                                  /* Param 1 = nil        */
  6190.                     fill long;                                  /* Param 2 = nil        */
  6191.                 case freqDurationCmd:
  6192.                     key bitstring[15] = 40;
  6193.                     integer     oneSecond = 2000;               /* Duration             */
  6194.                     longint;                                    /* frequency            */
  6195.                 case restCmd:
  6196.                     key bitstring[15] = 41;
  6197.                     integer     oneSecond = 2000;               /* Duration             */
  6198.                     fill long;                                  /* Param 2 = nil        */
  6199.                 case freqCmd:
  6200.                     key bitstring[15] = 42;
  6201.                     fill word;                                  /* Param 1 = nil        */
  6202.                     longint;                                    /* Frequency            */
  6203.                 case ampCmd:
  6204.                     key bitstring[15] = 43;
  6205.                     integer;                                    /* Amplitude            */
  6206.                     fill long;                                  /* Param 2              */
  6207.                 case timbreCmd:
  6208.                     key bitstring[15] = 44;
  6209.                     integer     sineWave, squareWave = 255;     /* Timbre               */
  6210.                     fill long;                                  /* Param 2              */
  6211.                 case waveTableCmd:
  6212.                     key bitstring[15] = 60;
  6213.                     unsigned integer;                           /* Length               */
  6214.                     longint;                                    /* Pointer to table     */
  6215.                 case phaseCmd:
  6216.                     key bitstring[15] = 61;
  6217.                     integer;                                    /* Shift                */
  6218.                     longint;                                    /* chanPtr              */
  6219.                 case soundCmd:
  6220.                     key bitstring[15] = 80;
  6221.                     fill word;                                  /* Param 1 = nil        */
  6222.                     longint;                                    /* Pointer to sound     */
  6223.                 case bufferCmd:
  6224.                     key bitstring[15] = 81;
  6225.                     fill word;                                  /* Param 1 = nil        */
  6226.                     longint;                                    /* Pointer to buffer    */
  6227.                 case rateCmd:
  6228.                     key bitstring[15] = 82;
  6229.                     fill word;                                  /* Param 1 = nil        */
  6230.                     longint;                                    /* Rate                 */
  6231.             };
  6232.         };
  6233.         array DataTables {
  6234.     DataTable:
  6235.             fill long;                                          /* Pointer to data      */
  6236.     SampleCnt:
  6237.             unsigned longint;                                   /* # of sound samples   */
  6238.             unsigned hex longint
  6239.                     Rate22K = $56EE8BA3;                        /* Sampling rate        */
  6240.             unsigned longint;                                   /* Start of loop        */
  6241.             unsigned longint;                                   /* End of loop          */
  6242.             hex byte;                                           /* encode (header type) */
  6243.             hex byte;                                           /* baseFrequency        */
  6244.             hex string [$$Long(SampleCnt[$$ArrayIndex(DataTables)])];
  6245.         };
  6246. };
  6247. æC 
  6248.  
  6249. æKY vers
  6250. æFr SysTypes.r
  6251. æT 
  6252. æD /*----------------------------vers • Version--------------------------------------------*/
  6253. type 'vers' {
  6254.         hex byte;                                               /* Major revision in BCD*/
  6255.         hex byte;                                               /* Minor vevision in BCD*/
  6256.         hex byte    development = 0x20,                         /* Release stage        */
  6257.                     alpha = 0x40,
  6258.                     beta = 0x60,
  6259.                     final = 0x80, /* or */ release = 0x80;
  6260.         hex byte;                                               /* Non-final release #  */
  6261.         integer     Region;                                     /* Region code          */
  6262.         pstring;                                                /* Short version number */
  6263.         pstring;                                                /* Long version number  */
  6264. };
  6265. æC 
  6266.  
  6267. æKY FRSV
  6268. æFr SysTypes.r
  6269. æT 
  6270. æD /*--------------------------------------------------------------------------------------*/
  6271.  
  6272. /* FRSV and resf • reserved fonts */
  6273.  
  6274.     type 'FRSV' {
  6275.         integer = $$CountOf(ReservedFontArray);
  6276.         wide array ReservedFontArray {
  6277.             unsigned bitstring[9]   Chicago = 0, Geneva = 3, Monaco = 4;    // font family
  6278.             unsigned bitstring[7];                                          // font size
  6279.         };
  6280.     };
  6281.  
  6282. æC 
  6283.  
  6284. æKY resf
  6285. æFr SysTypes.r
  6286. æT 
  6287. æD     type 'resf' {
  6288.         integer = $$CountOf(FamilyArray);
  6289.         array FamilyArray {
  6290.             pstring;
  6291.             align word;
  6292.             integer = $$CountOf(FontRecord);
  6293.             array FontRecord {
  6294.                 integer;                        // point size
  6295.                 integer plain;                  // style
  6296.             };
  6297.         };
  6298.     };
  6299.     
  6300. æC 
  6301.  
  6302. æKY fld# 
  6303. æFr SysTypes.r
  6304. æT 
  6305. æD /* fld# • list of folder names for Folder Mgr */
  6306.  
  6307.     type 'fld#' {
  6308.         array {
  6309.             literal     longint;                // folder type
  6310.             integer     inSystemFolder = 0;     // version
  6311.             fill byte;                          // high byte of data length
  6312.             pstring;                            // folder name
  6313.             align word;
  6314.         };
  6315.     };
  6316.  
  6317. æC 
  6318.  
  6319. æKY mitq 
  6320. æFr SysTypes.r
  6321. æT 
  6322. æD /* mitq • default queue sizes for MakeITable */
  6323.  
  6324.     type 'mitq' {               // default MakeITable queue sizes
  6325.         wide array [3] {
  6326.             unsigned longint;   // queue size for 3, 4, and 5 bit inverse tables
  6327.         };
  6328.     };
  6329.  
  6330. æC 
  6331.  
  6332. æKY  ppcc
  6333. æFr SysTypes.r
  6334. æT 
  6335. æD /* ppcc • PPC Browser Configuration Resource */
  6336.  
  6337.     type 'ppcc' {
  6338.         unsigned byte;  // NBP lookup interval
  6339.         unsigned byte;  // NBP lookup count
  6340.         integer;        // NBP maximum lives an entry has before deletion
  6341.         integer;        // NBP maximum number of entities
  6342.         integer;        // NBP idle time in ticks between lookups
  6343.         integer;        // PPC maximum number of ports
  6344.         integer;        // PPC idle time in ticks between list ports
  6345.     };
  6346.  
  6347. /*--------------------------------------------------------------------------------------*/
  6348.  
  6349. #endif __SYSTYPES.R__
  6350.  
  6351.  
  6352.  
  6353. æKY Types.r
  6354. æKL 
  6355. acceptAppDiedEvents         
  6356. actb
  6357. acur
  6358. aedt
  6359. ALRT
  6360. beepStage
  6361. beepStages
  6362. BitMapRowBytes 
  6363. blackRGB
  6364. BNDLtype
  6365. boldType            
  6366. cctb
  6367. cicn
  6368. clut
  6369. CNTL
  6370. condenseType       
  6371. crsr
  6372. CURS
  6373. dctb
  6374. dflg
  6375. disableOptionSwitch         
  6376. DITLtype
  6377. DLOG
  6378. doesActivateOnFGSwitch      
  6379. dontSaveScreen              
  6380. enableOptionSwitch          
  6381. eppc
  6382. extendType         
  6383. fctb
  6384. FREFtype
  6385. icl4
  6386. icl8
  6387. icm#
  6388. icm4
  6389. icm8
  6390. ICN#type
  6391. ICON
  6392. ics#
  6393. ics4
  6394. ics8
  6395. ignoreAppDiedEvents         
  6396. invertRGB
  6397. italicType          
  6398. MBARtype
  6399. mctb
  6400. MENU
  6401. needsActivateOnFGSwitch     
  6402. outlineType         
  6403. PAT 
  6404. PAT#
  6405. PICTtype
  6406. PixMapBounds   
  6407. PixMapHeight   
  6408. PixMapHeightIndexed    
  6409. PixMapRowBytes 
  6410. PixMapRowBytesIndexed  
  6411. PixMapWidth    
  6412. PixMapWidthIndexed     
  6413. pltt
  6414. popupFixedWidth         
  6415. popupMenuCDEFproc         
  6416. popupReserved           
  6417. popupTitleBold          
  6418. popupTitleCenterJust    
  6419. popupTitleCondense      
  6420. popupTitleExtend        
  6421. popupTitleItalic        
  6422. popupTitleLeftJust      
  6423. popupTitleNoStyle       
  6424. popupTitleOutline       
  6425. popupTitleRightJust     
  6426. popupTitleShadow        
  6427. popupTitleUnderline     
  6428. popupUseAddResMenu      
  6429. popupUseWFont           
  6430. ppat
  6431. ppt#
  6432. qrsc
  6433. RECT
  6434. saveScreen                  
  6435. shadowType         
  6436. SICN
  6437. silentStage
  6438. silentStages
  6439. SIZEtype
  6440. STR 
  6441. STR#
  6442. SystemSevenOrLater
  6443. transparentRGB
  6444. underlineType       
  6445. wctb
  6446. whiteRGB
  6447. WIND
  6448. wstr
  6449.  
  6450. æKY SystemSevenOrLater
  6451. æFr Types.r
  6452. æT #define
  6453. æD #ifndef SystemSevenOrLater
  6454. #define SystemSevenOrLater 0
  6455. #endif
  6456.  
  6457. æC 
  6458.  
  6459. æKY PixMapHeight   
  6460. æFr Types.r
  6461. æT #define
  6462. æD #define PixMapHeight    ( $$BitField(Bounds, 32, 16) /* bottom */           \
  6463.                         - $$BitField(Bounds, 0, 16) /* top */ )
  6464. æC 
  6465.  
  6466. æKY PixMapWidth    
  6467. æFr Types.r
  6468. æT #define
  6469. æD #define PixMapWidth     ( $$BitField(Bounds, 48, 16) /* right */            \
  6470.                         - $$BitField(Bounds, 16, 16) /* left */ )
  6471. æC 
  6472.  
  6473. æKY PixMapBounds   
  6474. æFr Types.r
  6475. æT #define
  6476. æD #define PixMapBounds    integer = $$BitField(Bounds, 0, 16) /* top */;      \
  6477.                         integer = $$BitField(Bounds, 16, 16) /* left */;    \
  6478.                         integer = $$BitField(Bounds, 32, 16) /* bottom */;  \
  6479.                         integer = $$BitField(Bounds, 48, 16) /* right */
  6480. æC 
  6481.  
  6482. æKY PixMapRowBytes 
  6483. æFr Types.r
  6484. æT #define
  6485. æD #define PixMapRowBytes  (((PixMapWidth * $$Word(PixelSize) + 15) / 16) * 2)
  6486. æC 
  6487.  
  6488. æKY BitMapRowBytes 
  6489. æFr Types.r
  6490. æT #define
  6491. æD #define BitMapRowBytes  (((PixMapWidth + 15) / 16) * 2)
  6492.  
  6493. æC 
  6494.  
  6495. æKY PixMapHeightIndexed    
  6496. æFr Types.r
  6497. æT #define
  6498. æD #define PixMapHeightIndexed     ( $$BitField(Bounds[$$ArrayIndex(PixPatArray)], 32, 16) /* bottom */            \
  6499.                                 - $$BitField(Bounds[$$ArrayIndex(PixPatArray)], 0, 16) /* top */ )
  6500. æC 
  6501.  
  6502. æKY PixMapWidthIndexed     
  6503. æFr Types.r
  6504. æT #define
  6505. æD #define PixMapWidthIndexed      ( $$BitField(Bounds[$$ArrayIndex(PixPatArray)], 48, 16) /* right */         \
  6506.                                 - $$BitField(Bounds[$$ArrayIndex(PixPatArray)], 16, 16) /* left */ )
  6507. æC 
  6508.  
  6509. æKY PixMapRowBytesIndexed  
  6510. æFr Types.r
  6511. æT #define
  6512. æD #define PixMapRowBytesIndexed   (((PixMapWidthIndexed * $$Word(PixelSize[$$ArrayIndex(PixPatArray)]) + 15) / 16) * 2)
  6513.  
  6514. æC 
  6515.  
  6516. æKY boldType            
  6517. æFr Types.r
  6518. æT #define
  6519. æD #define bold             1 
  6520. æC 
  6521.  
  6522. æKY italicType          
  6523. æFr Types.r
  6524. æT #define
  6525. æD #define italic           2 
  6526. æC 
  6527.  
  6528. æKY underlineType       
  6529. æFr Types.r
  6530. æT #define
  6531. æD #define underline        4 
  6532. æC 
  6533.  
  6534. æKY outlineType         
  6535. æFr Types.r
  6536. æT #define
  6537. æD #define outline          8 
  6538. æC 
  6539.  
  6540. æKY shadowType         
  6541. æFr Types.r
  6542. æT #define
  6543. æD #define shadow          16 
  6544. æC 
  6545.  
  6546. æKY condenseType       
  6547. æFr Types.r
  6548. æT #define
  6549. æD #define condense        32 
  6550. æC 
  6551.  
  6552. æKY extendType         
  6553. æFr Types.r
  6554. æT #define
  6555. æD #define extend          64 
  6556. æC 
  6557.  
  6558. æKY acur
  6559. æFr Types.r
  6560. æT 
  6561. æD 
  6562. /*----------------------------acur • Cursor Pointers -----------------------------------*/
  6563. type 'acur' {
  6564.        integer = $$CountOf(CursIdArray); /* Nbr of cursors                 */
  6565.        fill word;                        /* Next frame to show             */
  6566.        array CursIdArray {
  6567.            integer;                      /* 'CURS' resource id for a frame */
  6568.            fill word;                    /* Pad word to make longint       */
  6569.        };
  6570. };
  6571. æC 
  6572.  
  6573. æKY actb
  6574. æFr Types.r
  6575. æT 
  6576. æD #Ifdef oldTemp
  6577. /*--------------------------actb • Alert Color old Lookup Table--------------------------*/
  6578.     type 'actb' {
  6579.             unsigned hex longint;                                   /* ctSeed               */
  6580.             integer;                                                /* ctFlags              */
  6581.             integer = $$Countof(ColorSpec) - 1;                     /* ctSize               */
  6582.             wide array ColorSpec {
  6583.                     integer     wContentColor,                      /* value                */
  6584.                                 wFrameColor,
  6585.                                 wTextColor,
  6586.                                 wHiliteColor,
  6587.                                 wTitleBarColor;
  6588.                     unsigned integer;                               /* RGB: red             */
  6589.                     unsigned integer;                               /*      green           */
  6590.                     unsigned integer;                               /*      blue            */
  6591.             };
  6592.     };
  6593. #else
  6594. /*----------------------------actb • Alert Color Lookup Table----------------------------*/
  6595.     type 'actb' {
  6596.             unsigned hex longint = 0;                               /* ctSeed               */
  6597.             integer = 0;                                            /* ctFlags              */
  6598.             integer = $$Countof(ColorSpec) - 1;                     /* ctSize               */
  6599.             wide array ColorSpec {
  6600.                     integer     wContentColor,                      /* value                */
  6601.                                 wFrameColor,
  6602.                                 wTextColor,
  6603.                                 wHiliteColor,
  6604.                             wTitleBarColor,
  6605.                             wHiliteLight,
  6606.                             wHiliteDark,
  6607.                             wTitleBarLight,
  6608.                             wTitleBarDark,
  6609.                             wDialogLight,
  6610.                             wDialogDark,
  6611.                             wTingeLight,
  6612.                             wTingeDark;
  6613.                     unsigned integer;                               /* RGB: red             */
  6614.                     unsigned integer;                               /*      green           */
  6615.                     unsigned integer;                               /*      blue            */
  6616.             };
  6617.     };
  6618. #endif
  6619. æC 
  6620.  
  6621. æKY aedt
  6622. æFr Types.r
  6623. æT 
  6624. æD /*--------------------------aedt • Apple Events Template---------------------------------*/
  6625. /* Resource definition used for associating a value with an apple event */
  6626. /* This really only useful for general dispatching */
  6627.  
  6628. type 'aedt' {
  6629.     wide array {
  6630.     unsigned longint;   /* Event Class  */
  6631.     unsigned longint;   /* Event ID     */
  6632.     unsigned longint;   /* Value    */
  6633.     };
  6634. };
  6635. æC 
  6636.  
  6637. æKY ALRT
  6638. æFr Types.r
  6639. æT 
  6640. æD /*----------------------------ALRT • Alert Template-------------------------------------*/
  6641. type 'ALRT' {
  6642.         rect;                                                   /* boundsRect           */
  6643.         integer;                                                /* 'DITL' ID            */
  6644.  
  6645.         /* NOTE: the stages are ordered 4, 3, 2, 1 */
  6646.         wide array [4] {
  6647.                 boolean                 OK, Cancel;             /* Bold Outline         */
  6648.                 boolean                 invisible, visible;     /* Draw Alert           */
  6649.                 unsigned bitstring[2]   silent = 0
  6650.                                 sound1, sound2, sound3;         /* Beeps                */
  6651.         };
  6652.         
  6653.     /*  The following are window positioning options ,usable in 7.0 */
  6654. #if SystemSevenOrLater
  6655.         unsigned integer                noAutoCenter = 0x0000,
  6656.                                         centerMainScreen = 0x280a,
  6657.                                         alertPositionMainScreen = 0x300a,
  6658.                                         staggerMainScreen = 0x380a,
  6659.                                         centerParentWindow = 0xa80a,
  6660.                                         alertPositionParentWindow = 0xb00a,
  6661.                                         staggerParentWindow = 0xb80a,
  6662.                                         centerParentWindowScreen = 0x680a,
  6663.                                         alertPositionParentWindowScreen = 0x700a,
  6664.                                         staggerParentWindowScreen = 0x780a;
  6665. #endif
  6666. };
  6667. æC 
  6668.  
  6669. æKY BNDLtype
  6670. æFr Types.r
  6671. æT 
  6672. æD /*----------------------------BNDL • Bundle---------------------------------------------*/
  6673. type 'BNDL' {
  6674.         literal longint;                                        /* Signature            */
  6675.         integer;                                                /* Version ID           */
  6676.         integer = $$CountOf(TypeArray) - 1;
  6677.         array TypeArray {
  6678.                 literal longint;                                /* Type                 */
  6679.                 integer = $$CountOf(IDArray) - 1;
  6680.                 wide array IDArray {
  6681.                         integer;                                /* Local ID             */
  6682.                         integer;                                /* Actual ID            */
  6683.                 };
  6684.         };
  6685. };
  6686. æC 
  6687.  
  6688. æKY cctb
  6689. æFr Types.r
  6690. æT 
  6691. æD #Ifdef oldTemp
  6692. /*--------------------------cctb • Control Color old Lookup Table----------------------*/
  6693.     type 'cctb' {
  6694.             unsigned hex longint;                                   /* CCSeed               */
  6695.             integer;                                                /* ccReserved           */
  6696.             integer = $$Countof(ColorSpec) - 1;                     /* ctSize               */
  6697.             wide array ColorSpec {
  6698.                     integer     cFrameColor,                        /* partcode             */
  6699.                                 cBodyColor,
  6700.                                 cTextColor,
  6701.                                 cElevatorColor;
  6702.                     unsigned integer;                               /* RGB: red             */
  6703.                     unsigned integer;                               /*      green           */
  6704.                     unsigned integer;                               /*      blue            */
  6705.             };
  6706.     };
  6707. #else
  6708. /*----------------------------cctb • Control Color Lookup Table-------------------------*/
  6709. type 'cctb' {
  6710.         unsigned hex longint = 0;                               /* CCSeed               */
  6711.         integer = 0;                                            /* ccReserved           */
  6712.         integer = $$Countof(ColorSpec) - 1;                     /* ctSize               */
  6713.         wide array ColorSpec {
  6714.                 integer     cFrameColor,                        /* partcode             */
  6715.                             cBodyColor,
  6716.                             cTextColor,
  6717.                             cElevatorColor,
  6718.                             cFillPatColor,
  6719.                             cArrowsLight,
  6720.                             cArrowsDark,
  6721.                             cThumbLight,
  6722.                             cThumbDark,
  6723.                             cHiliteLight,
  6724.                             cHiliteDark,
  6725.                             cTitleBarLight,
  6726.                             cTitleBarDark,
  6727.                             cTingeLight,
  6728.                             cTingeDark;
  6729.                 unsigned integer;                               /* RGB: red             */
  6730.                 unsigned integer;                               /*      green           */
  6731.                 unsigned integer;                               /*      blue            */
  6732.         };
  6733. };
  6734. #endif
  6735. æC 
  6736.  
  6737. æKY cicn
  6738. æFr Types.r
  6739. æT 
  6740. æD #ifdef oldTemp
  6741. /*-----------------------cicn • Color Icon old template-------------------------------------*/
  6742.     type 'cicn' {
  6743.             /* IconPMap (pixMap) record */
  6744.             fill long;                                              /* Base address         */
  6745.             unsigned bitstring[1] = 1;                              /* New pixMap flag      */
  6746.             unsigned bitstring[2] = 0;                              /* Must be 0            */
  6747.     pMapRowBytes:
  6748.             unsigned bitstring[13];                                 /* Offset to next row   */
  6749.     Bounds:
  6750.             rect;                                                   /* Bitmap bounds        */
  6751.             integer;                                                /* pixMap vers number   */
  6752.             integer unpacked;                                       /* Packing format       */
  6753.             unsigned longint;                                       /* Size of pixel data   */
  6754.             unsigned hex longint;                                   /* h. resolution (ppi) (fixed) */
  6755.             unsigned hex longint;                                   /* v. resolution (ppi) (fixed) */
  6756.             integer         chunky, chunkyPlanar, planar;           /* Pixel storage format */
  6757.             integer;                                                /* # bits in pixel      */
  6758.             integer;                                                /* # components in pixel*/
  6759.             integer;                                                /* # bits per field     */
  6760.             unsigned longint;                                       /* Offset to next plane */
  6761.             unsigned longint;                                       /* Offset to color table*/
  6762.             fill long;                                              /* Reserved             */
  6763.     
  6764.             /* IconMask (bitMap) record */
  6765.             fill long;                                              /* Base address         */
  6766.     maskRowBytes:
  6767.             integer;                                                /* Row bytes            */
  6768.             rect;                                                   /* Bitmap bounds        */
  6769.             
  6770.             /* IconBMap (bitMap) record */
  6771.             fill long;                                              /* Base address         */
  6772.     iconBMapRowBytes:
  6773.             integer;                                                /* Row bytes            */
  6774.             rect;                                                   /* Bitmap bounds        */
  6775.             
  6776.             fill long;                                              /* Handle placeholder   */
  6777.             
  6778.             /* Mask data */
  6779.             hex string [$$Word(maskRowBytes) * PIXMAPHEIGHT];       
  6780.     
  6781.             /* BitMap data */
  6782.             hex string [$$Word(iconBMapRowBytes) * PIXMAPHEIGHT];       
  6783.     
  6784.             /* Color Table */
  6785.             unsigned hex longint;                                   /* ctSeed               */
  6786.             integer;                                                /* ctFlags              */
  6787.             integer = $$Countof(ColorSpec) - 1;                     /* ctSize               */
  6788.             wide array ColorSpec {
  6789.                     integer;                                        /* value                */
  6790.                     unsigned integer;                               /* RGB: red             */
  6791.                     unsigned integer;                               /*      green           */
  6792.                     unsigned integer;                               /*      blue            */
  6793.             };
  6794.     
  6795.             /* PixelMap data */
  6796.             hex string [$$BitField(pMapRowBytes, 0, 13) * PIXMAPHEIGHT];
  6797.     };
  6798. #else
  6799. /*----------------------------cicn • Color Icon-----------------------------------------*/
  6800.     type 'cicn' {
  6801.             /* IconPMap (pixMap) record */
  6802.             fill long;                                              /* Base address         */
  6803.             unsigned bitstring[1] = 1;                              /* New pixMap flag      */
  6804.             unsigned bitstring[2] = 0;                              /* Must be 0            */
  6805.     pMapRowBytes:
  6806.             unsigned bitstring[13];                                 /* Offset to next row   */
  6807.     Bounds: rect;                                                   /* Bitmap bounds        */
  6808.             integer = 0;                                            /* pixMap vers number   */
  6809.             integer = 0;                                            /* Packing format       */
  6810.             fill long;                                              /* Size of pixel data   */
  6811.             unsigned hex longint = $00480000;                       /* h. resolution (ppi)  */
  6812.             unsigned hex longint = $00480000;                       /* v. resolution (ppi)  */
  6813.             integer = 0 /* chunky */;                               /* Pixel storage format */
  6814.     PixelSize:
  6815.             integer;                                                /* # bits in pixel      */
  6816.             integer = 1;                                            /* # components in pixel*/
  6817.             integer = $$Word(PixelSize);                            /* # bits per field     */
  6818.             fill long;
  6819.             fill long;
  6820.             fill long;
  6821.     
  6822.             /* IconMask (bitMap) record */
  6823.             fill long;                                              /* Base address         */
  6824.             integer = BitMapRowBytes;                               /* Row bytes            */
  6825.             PixMapBounds;                                           /* Bitmap bounds        */
  6826.     
  6827.             /* IconBMap (bitMap) record */
  6828.             fill long;                                              /* Base address         */
  6829.             integer = BitMapRowBytes;                               /* Row bytes            */
  6830.             PixMapBounds;                                           /* Bitmap bounds        */
  6831.     
  6832.             fill long;                                              /* Handle placeholder   */
  6833.     
  6834.             /* Mask data */
  6835.             hex string [BitMapRowBytes * PixMapHeight];
  6836.     
  6837.             /* BitMap data */
  6838.             hex string [BitMapRowBytes * PixMapHeight];
  6839.     
  6840.     ColorTable:
  6841.             unsigned hex longint = 0;                               /* ctSeed               */
  6842.             integer = 0;                                            /* ctFlags              */
  6843.             integer = $$Countof(ColorSpec) - 1;                     /* ctSize               */
  6844.             wide array ColorSpec {
  6845.                     integer;                                        /* value                */
  6846.                     unsigned integer;                               /* RGB: red             */
  6847.                     unsigned integer;                               /*      green           */
  6848.                     unsigned integer;                               /*      blue            */
  6849.             };
  6850.     
  6851.     PixelData:
  6852.             hex string [PixMapRowBytes * PixMapHeight];             /* more of the pixmap   */
  6853.     };
  6854. #endif
  6855. æC 
  6856.  
  6857. æKY clut
  6858. æFr Types.r
  6859. æT 
  6860. æD #Ifdef oldTemp
  6861. /*-------------------------- old clut • Generic Color Lookup Table----------------------*/
  6862.     type 'clut' {
  6863.             unsigned hex longint;                                   /* ctSeed               */
  6864.             integer;                                                /* ctFlags              */
  6865.             integer = $$Countof(ColorSpec) - 1;                     /* ctSize               */
  6866.             wide array ColorSpec {
  6867.                     integer;                                        /* value                */
  6868.                     unsigned integer;                               /* RGB: red             */
  6869.                     unsigned integer;                               /*      green           */
  6870.                     unsigned integer;                               /*      blue            */
  6871.             };
  6872.     };
  6873. #else
  6874. /*----------------------------clut • Generic Color Lookup Table-------------------------*/
  6875.     type 'clut' {
  6876.             unsigned hex longint = 0;                               /* ctSeed               */
  6877.             integer = 0;                                            /* ctFlags              */
  6878.             integer = $$Countof(ColorSpec) - 1;                     /* ctSize               */
  6879.             wide array ColorSpec {
  6880.                     integer = $$ArrayIndex(ColorSpec) - 1;          /* value                */
  6881.                     unsigned integer;                               /* RGB: red             */
  6882.                     unsigned integer;                               /*      green           */
  6883.                     unsigned integer;                               /*      blue            */
  6884.             };
  6885.     };
  6886. #endif
  6887. æC 
  6888.  
  6889. æKY CNTL
  6890. æFr Types.r
  6891. æT 
  6892. æD /*----------------------------CNTL • Control Template-----------------------------------*/
  6893. type 'CNTL' {
  6894.         rect;                                                   /* Bounds               */
  6895.         integer;                                                /* Value                */
  6896.         byte            invisible, visible;                     /* visible              */
  6897.         fill byte;
  6898.         integer;                                                /* Max                  */
  6899.         integer;                                                /* Min                  */
  6900.         integer         pushButProc,                            /* ProcID               */
  6901.                         checkBoxProc,
  6902.                         radioButProc,
  6903.                         pushButProcUseWFont = 8,
  6904.                         checkBoxProcUseWFont,
  6905.                         radioButProcUseWFont,
  6906.                         scrollBarProc = 16;
  6907.         longint;                                                /* RefCon               */
  6908.         pstring;                                                /* Title                */
  6909. };
  6910. æC 
  6911.  
  6912. æKY popupMenuCDEFproc         
  6913. æFr Types.r
  6914. æT #define
  6915. æD #define popupMenuCDEFproc          1008 
  6916. æC 
  6917.  
  6918. æKY popupFixedWidth         
  6919. æFr Types.r
  6920. æT #define
  6921. æD #define popupFixedWidth          0x0001
  6922. æC 
  6923.  
  6924. æKY popupReserved           
  6925. æFr Types.r
  6926. æT #define
  6927. æD #define popupReserved            0x0002
  6928. æC 
  6929.  
  6930. æKY popupUseAddResMenu      
  6931. æFr Types.r
  6932. æT #define
  6933. æD #define popupUseAddResMenu       0x0004
  6934. æC 
  6935.  
  6936. æKY popupUseWFont           
  6937. æFr Types.r
  6938. æT #define
  6939. æD #define popupUseWFont            0x0008
  6940. æC 
  6941.  
  6942. æKY popupTitleBold          
  6943. æFr Types.r
  6944. æT #define
  6945. æD #define popupTitleBold           0x0100
  6946. æC 
  6947.  
  6948. æKY popupTitleItalic        
  6949. æFr Types.r
  6950. æT #define
  6951. æD #define popupTitleItalic         0x0200
  6952. æC 
  6953.  
  6954. æKY popupTitleUnderline     
  6955. æFr Types.r
  6956. æT #define
  6957. æD #define popupTitleUnderline      0x0400
  6958. æC 
  6959.  
  6960. æKY popupTitleOutline       
  6961. æFr Types.r
  6962. æT #define
  6963. æD #define popupTitleOutline        0x0800
  6964. æC 
  6965.  
  6966. æKY popupTitleShadow        
  6967. æFr Types.r
  6968. æT #define
  6969. æD #define popupTitleShadow         0x1000
  6970. æC 
  6971.  
  6972. æKY popupTitleCondense      
  6973. æFr Types.r
  6974. æT #define
  6975. æD #define popupTitleCondense       0x2000
  6976. æC 
  6977.  
  6978. æKY popupTitleExtend        
  6979. æFr Types.r
  6980. æT #define
  6981. æD #define popupTitleExtend         0x4000
  6982. æC 
  6983.  
  6984. æKY popupTitleNoStyle       
  6985. æFr Types.r
  6986. æT #define
  6987. æD #define popupTitleNoStyle        0x8000
  6988. æC 
  6989.  
  6990. æKY popupTitleLeftJust      
  6991. æFr Types.r
  6992. æT #define
  6993. æD #define popupTitleLeftJust       0x0000
  6994. æC 
  6995.  
  6996. æKY popupTitleCenterJust    
  6997. æFr Types.r
  6998. æT #define
  6999. æD #define popupTitleCenterJust     0x0001
  7000. æC 
  7001.  
  7002. æKY popupTitleRightJust     
  7003. æFr Types.r
  7004. æT #define
  7005. æD #define popupTitleRightJust      0x00FF
  7006. æC 
  7007.  
  7008. æKY crsr
  7009. æFr Types.r
  7010. æT 
  7011. æD 
  7012. #ifdef oldTemp
  7013. /*------------------------crsr • old Color Cursor template----------------------------------*/
  7014.     type 'crsr' {
  7015.             /* CCrsr record */
  7016.             hex unsigned integer    oldCursor   = $8000,            /* Type of cursor       */
  7017.                                     colorCursor = $8001;
  7018.             unsigned longint = pixMap / 8;                          /* Offset to pixMap     */
  7019.             unsigned longint = pixelData / 8;                       /* Offset to pixel data */
  7020.             fill long;                                              /* Expanded cursor data */
  7021.             fill word;                                              /* Expanded data depth  */
  7022.             fill long;                                              /* Reserved             */
  7023.             hex string [32];                                        /* One bit cursor data  */
  7024.             hex string [32];                                        /* One bit cursor mask  */
  7025.             point;                                                  /* Hot spot             */
  7026.             fill long;                                              /* Table id             */
  7027.             fill long;                                              /* id for cursor        */
  7028.         
  7029.             /* IconPMap (pixMap) record */
  7030.     pixMap:
  7031.             fill long;                                              /* Base address         */
  7032.             unsigned bitstring[1] = 1;                              /* New pixMap flag      */
  7033.             unsigned bitstring[2] = 0;                              /* Must be 0            */
  7034.             unsigned bitstring[13];                                 /* Offset to next row   */
  7035.             rect;                                                   /* Bitmap bounds        */
  7036.             integer;                                                /* pixMap version number*/
  7037.             integer unpacked;                                       /* Packing format       */
  7038.             unsigned longint;                                       /* Size of pixel data   */
  7039.             unsigned hex longint;                                   /* h. resolution (ppi) (fixed) */
  7040.             unsigned hex longint;                                   /* v. resolution (ppi) (fixed) */
  7041.             integer         chunky, chunkyPlanar, planar;           /* Pixel storage format */
  7042.             integer;                                                /* # bits in pixel      */
  7043.             integer;                                                /* # components in pixel*/
  7044.             integer;                                                /* # bits per field     */
  7045.             unsigned longint;                                       /* Offset to next plane */
  7046.             unsigned longint = colorTable / 8;                      /* Offset to color table*/
  7047.             fill long;                                              /* Reserved             */
  7048.     
  7049.     pixelData:
  7050.             hex string [(colorTable - pixelData) / 8];              /* Pixel data           */
  7051.     
  7052.             /* Color Table */
  7053.     colorTable:
  7054.             unsigned hex longint;                                   /* ctSeed               */
  7055.             integer;                                                /* ctFlags              */
  7056.             integer = $$Countof(ColorSpec) - 1;                     /* ctSize               */
  7057.             wide array ColorSpec {
  7058.                     integer;                                        /* value                */
  7059.                     unsigned integer;                               /* RGB: red             */
  7060.                     unsigned integer;                               /*      green           */
  7061.                     unsigned integer;                               /*      blue            */
  7062.             };
  7063.     };
  7064. #else
  7065. /*----------------------------crsr • Color Cursor---------------------------------------*/
  7066. type 'crsr' {
  7067.         /* CCrsr record */
  7068.         unsigned hex integer = $8001;                           /* Type of cursor       */
  7069.         unsigned longint = PixMap / 8;                          /* Offset to pixMap     */
  7070.         unsigned longint = PixelData / 8;                       /* Offset to pixel data */
  7071.         fill long;                                              /* Expanded cursor data */
  7072.         fill word;                                              /* Expanded data depth  */
  7073.         fill long;                                              /* Reserved             */
  7074.         hex string [32];                                        /* One bit cursor data  */
  7075.         hex string [32];                                        /* One bit cursor mask  */
  7076.         point;                                                  /* Hot spot             */
  7077.         fill long;                                              /* Table id             */
  7078.         fill long;                                              /* id for cursor        */
  7079.  
  7080.         /* PixMap record */
  7081. PixMap:
  7082.         fill long;                                              /* Base address         */
  7083.         unsigned bitstring[1] = 1;                              /* New pixMap flag      */
  7084.         unsigned bitstring[2] = 0;                              /* Must be 0            */
  7085. pMapRowBytes:
  7086.         unsigned bitstring[13];                                 /* Offset to next row   */
  7087.  
  7088. Bounds: rect = { 0, 0, 16, 16 };                                /* Bitmap bounds        */
  7089.         integer = 0;                                            /* pixMap vers number   */
  7090.         integer = 0;                                            /* Packing format       */
  7091.         fill long;                                              /* Size of pixel data   */
  7092.         unsigned hex longint = $00480000;                       /* h. resolution (ppi)  */
  7093.         unsigned hex longint = $00480000;                       /* v. resolution (ppi)  */
  7094.         integer = 0 /* chunky */;                               /* Pixel storage format */
  7095. PixelSize:
  7096.         integer;                                                /* # bits in pixel      */
  7097.         integer = 1;                                            /* # components in pixel*/
  7098.         integer = $$Word(PixelSize);                            /* # bits per field     */
  7099.         fill long;
  7100.         unsigned longint = ColorTable / 8;
  7101.         fill long;
  7102.  
  7103. PixelData:
  7104.         hex string [PixMapRowBytes * PixMapHeight];
  7105.  
  7106. ColorTable:
  7107.         unsigned hex longint = 0;                               /* ctSeed               */
  7108.         integer = 0;                                            /* ctFlags              */
  7109.         integer = $$Countof(ColorSpec) - 1;                     /* ctSize               */
  7110.         wide array ColorSpec {
  7111.                 integer;                                        /* value                */
  7112.                 unsigned integer;                               /* RGB: red             */
  7113.                 unsigned integer;                               /*      green           */
  7114.                 unsigned integer;                               /*      blue            */
  7115.         };
  7116. };
  7117. #endif
  7118. æC 
  7119.  
  7120. æKY CURS
  7121. æFr Types.r
  7122. æT 
  7123. æD /*----------------------------CURS • Cursor---------------------------------------------*/
  7124. type 'CURS' {
  7125.         hex string [32];                                        /* Data                 */
  7126.         hex string [32];                                        /* Mask                 */
  7127.         point;                                                  /* Hot spot             */
  7128. };
  7129. æC 
  7130.  
  7131. æKY dctb
  7132. æFr Types.r
  7133. æT 
  7134. æD /*----------------------------dctb • Dialog Color Lookup Table--------------------------*/
  7135. type 'dctb' as 'actb';
  7136. æC 
  7137.  
  7138. æKY DITLtype
  7139. æFr Types.r
  7140. æT 
  7141. æD /*----------------------------DITL • Dialog Item List-----------------------------------*/
  7142. type 'DITL' {
  7143.         integer = $$CountOf(DITLarray) - 1;                     /* Array size           */
  7144.         wide array DITLarray {
  7145.                 fill long;
  7146.                 rect;                                           /* Item bounds          */
  7147.                 switch {
  7148.  
  7149.                 case HelpItem:                                  /* Help Mgr type item */
  7150.                         boolean         enabled,disabled;       /* Enable flag          */
  7151.                         key bitstring[7] = 1;                   /* this is a new type = 1 */
  7152.                         
  7153.                         switch {
  7154.                             case HMScanhdlg:
  7155.                                 byte = 4;                       /* sizeola              */
  7156.                                 key int = 1;                    /* key value            */
  7157.                                 integer;                        /* resource ID          */
  7158.                                 
  7159.                             case HMScanhrct:
  7160.                                 byte = 4;                       /* sizeola              */
  7161.                                 key int = 2;                    /* key value            */
  7162.                                 integer;                        /* resource ID          */
  7163.                                 
  7164.                             case HMScanAppendhdlg:
  7165.                                 byte = 6;                       /* sizeola              */
  7166.                                 key int = 8;                    /* key value            */
  7167.                                 integer;                        /* resource ID          */
  7168.                                 integer;                        /* offset (zero based)  */
  7169.                         };
  7170.                 case Button:
  7171.                         boolean         enabled,disabled;       /* Enable flag          */
  7172.                         key bitstring[7] = 4;
  7173.                         pstring;                                /* Title                */
  7174.  
  7175.                 case CheckBox:
  7176.                         boolean         enabled,disabled;       /* Enable flag          */
  7177.                         key bitstring[7] = 5;
  7178.                         pstring;                                /* Title                */
  7179.  
  7180.                 case RadioButton:
  7181.                         boolean         enabled,disabled;       /* Enable flag          */
  7182.                         key bitstring[7] = 6;
  7183.                         pstring;                                /* Title                */
  7184.  
  7185.                 case Control:
  7186.                         boolean         enabled,disabled;       /* Enable flag          */
  7187.                         key bitstring[7] = 7;
  7188.                         byte = 2;
  7189.                         integer;                                /* 'CTRL' ID            */
  7190.  
  7191.                 case StaticText:
  7192.                         boolean         enabled,disabled;       /* Enable flag          */
  7193.                         key bitstring[7] = 8;
  7194.                         pstring;                                /* Text                 */
  7195.  
  7196.                 case EditText:
  7197.                         boolean         enabled,disabled;       /* Enable flag          */
  7198.                         key bitstring[7] = 16;
  7199.                         pstring;                                /* Text                 */
  7200.  
  7201.                 case Icon:
  7202.                         boolean         enabled,disabled;       /* Enable flag          */
  7203.                         key bitstring[7] = 32;
  7204.                         byte = 2;
  7205.                         integer;                                /* 'ICON' ID            */
  7206.  
  7207.                 case Picture:
  7208.                         boolean         enabled,disabled;       /* Enable flag          */
  7209.                         key bitstring[7] = 64;
  7210.                         byte = 2;
  7211.                         integer;                                /* 'PICT' ID            */
  7212.  
  7213.                 case UserItem:
  7214.                         boolean         enabled,disabled;       /* Enable flag          */
  7215.                         key bitstring[7] = 0;
  7216.                         byte = 0;
  7217.                 };
  7218.                 align word;
  7219.         };
  7220. };
  7221. æC 
  7222.  
  7223. æKY DLOG
  7224. æFr Types.r
  7225. æT 
  7226. æD /*----------------------------DLOG • Dialog Template------------------------------------*/
  7227. type 'DLOG' {
  7228.         rect;                                                   /* boundsRect           */
  7229.         integer         documentProc,                           /* procID               */
  7230.                         dBoxProc,
  7231.                         plainDBox,
  7232.                         altDBoxProc,
  7233.                         noGrowDocProc,
  7234.                         movableDBoxProc,
  7235.                         zoomDocProc = 8,
  7236.                         zoomNoGrow = 12,
  7237.                         rDocProc = 16;
  7238.         byte            invisible, visible;                     /* visible              */
  7239.         fill byte;
  7240.         byte            noGoAway, goAway;                       /* goAway               */
  7241.         fill byte;
  7242.         unsigned hex longint;                                   /* refCon               */
  7243.         integer;                                                /* 'DITL' ID            */
  7244.         pstring;                                                /* title                */
  7245.     /*  The following are window positioning options ,usable in 7.0 */
  7246. #if SystemSevenOrLater
  7247.         align word;
  7248.         unsigned integer                noAutoCenter = 0x0000,
  7249.                                         centerMainScreen = 0x280a,
  7250.                                         alertPositionMainScreen = 0x300a,
  7251.                                         staggerMainScreen = 0x380a,
  7252.                                         centerParentWindow = 0xa80a,
  7253.                                         alertPositionParentWindow = 0xb00a,
  7254.                                         staggerParentWindow = 0xb80a,
  7255.                                         centerParentWindowScreen = 0x680a,
  7256.                                         alertPositionParentWindowScreen = 0x700a,
  7257.                                         staggerParentWindowScreen = 0x780a;
  7258. #endif
  7259. };
  7260. æC 
  7261.  
  7262. æKY eppc
  7263. æFr Types.r
  7264. æT 
  7265. æD /*----------------------------------------eppc -----------------------------------------*/
  7266. type 'eppc' {
  7267.     unsigned longint;   /* flags word   */
  7268.     unsigned longint;   /* reserved     */
  7269.     unsigned integer;   /* scriptCode   */
  7270.     pstring[32];
  7271. };
  7272. æC 
  7273.  
  7274. æKY fctb
  7275. æFr Types.r
  7276. æT 
  7277. æD /*----------------------------fctb • Font Color Lookup Table----------------------------*/
  7278. type 'fctb' as 'clut';
  7279. æC 
  7280.  
  7281. æKY FREFtype
  7282. æFr Types.r
  7283. æT 
  7284. æD /*----------------------------FREF • File Reference-------------------------------------*/
  7285. type 'FREF' {
  7286.         literal longint;                                        /* File Type            */
  7287.         integer;                                                /* Icon ID              */
  7288.         pstring;                                                /* Filename             */
  7289. };
  7290. æC 
  7291.  
  7292. æKY ICON
  7293. æFr Types.r
  7294. æT 
  7295. æD /*----------------------------ICON • Icon-----------------------------------------------*/
  7296. type 'ICON' {
  7297.         hex string[128];                                        /* Icon data            */
  7298. };
  7299. æC 
  7300.  
  7301. æKY ICN#type
  7302. æFr Types.r
  7303. æT 
  7304. æD /*----------------------------ICN# • Icon List------------------------------------------*/
  7305. type 'ICN#' {
  7306.         array {
  7307.                 hex string[128];                                /* Icon data            */
  7308.         };
  7309. };
  7310. type 'KCN#' as 'ICN#';                                          /* Keyboard Icon data <8>*/
  7311. æC 
  7312.  
  7313. æKY MENU
  7314. æFr Types.r
  7315. æT 
  7316. æD /*----------------------------MENU • Menu-----------------------------------------------*/
  7317. type 'MENU' {
  7318.         integer;                                                /* Menu ID              */
  7319.         fill word[2];
  7320.         integer         textMenuProc = 0;                       /* ID of menu def proc  */
  7321.         fill word;
  7322.         unsigned hex bitstring[31]
  7323.                         allEnabled = 0x7FFFFFFF;                /* Enable flags         */
  7324.         boolean         disabled, enabled;                      /* Menu enable          */
  7325.         pstring         apple = "\0x14";                        /* Menu Title           */
  7326.         wide array {
  7327.                 pstring;                                        /* Item title           */
  7328.                 byte            noIcon;                         /* Icon number          */
  7329.                 char            noKey = "\0x00",                /* Key equivalent or    */
  7330.                                 hierarchicalMenu = "\0x1B";     /* hierarchical menu    */
  7331.                 char            noMark = "\0x00",               /* Marking char or id   */
  7332.                                 check = "\0x12";                /* of hierarchical menu */
  7333.                 fill bit;
  7334.                 unsigned bitstring[7]
  7335.                                 plain;                          /* Style                */
  7336.         };
  7337.         byte = 0;
  7338. };
  7339. æC 
  7340.  
  7341. æKY MBARtype
  7342. æFr Types.r
  7343. æT 
  7344. æD /*----------------------------MBAR • Menu Bar-------------------------------------------*/
  7345. type 'MBAR' {
  7346.         integer = $$CountOf(MenuArray);                         /* Number of menus      */
  7347.         wide array MenuArray{
  7348.                 integer;                                        /* Menu resource ID     */
  7349.         };
  7350. };
  7351. æC 
  7352.  
  7353. æKY mctb
  7354. æFr Types.r
  7355. æT 
  7356. æD /*----------------------------mctb • Menu Color Lookup Table----------------------------*/
  7357. type 'mctb' {
  7358.         integer = $$CountOf(MCTBArray);                         /* Color table count    */
  7359.         wide array MCTBArray {
  7360.             integer             mctbLast = -99;                 /* Menu resource ID     */
  7361.             integer;                                            /* Menu Item            */
  7362.             wide array [4] {
  7363.                     unsigned integer;                           /* RGB: red             */
  7364.                     unsigned integer;                           /*      green           */
  7365.                     unsigned integer;                           /*      blue            */
  7366.             };
  7367.             fill word;                                          /* Reserved word        */
  7368.         };
  7369. };
  7370. æC 
  7371.  
  7372. æKY PAT 
  7373. æFr Types.r
  7374. æT 
  7375. æD /*----------------------------PAT  • Quickdraw Pattern----------------------------------*/
  7376. type 'PAT ' {
  7377.         hex string[8];                                          /* Pattern              */
  7378. };
  7379. æC 
  7380.  
  7381. æKY PAT#
  7382. æFr Types.r
  7383. æT 
  7384. æD /*----------------------------PAT# • Quickdraw Pattern List-----------------------------*/
  7385. type 'PAT#' {
  7386.         integer = $$Countof(PatArray);
  7387.         array PatArray {
  7388.                 hex string[8];                                  /* Pattern              */
  7389.         };
  7390. };
  7391. æC 
  7392.  
  7393. æKY PICTtype
  7394. æFr Types.r
  7395. æT 
  7396. æD #ifndef __PICT.R__
  7397. /*----------------------------PICT • Quickdraw Picture----------------------------------*/
  7398. type 'PICT' {
  7399.         unsigned integer;                                       /* Length               */
  7400.         rect;                                                   /* Frame                */
  7401.         hex string;                                             /* Data                 */
  7402. };
  7403. #endif __PICT.R__
  7404. æC 
  7405.  
  7406. æKY pltt
  7407. æFr Types.r
  7408. æT 
  7409. æD /*----------------------------pltt • Color Palette--------------------------------------*/
  7410. type 'pltt' {
  7411.         integer = $$CountOf(ColorInfo);                         /* Color table count    */
  7412.         fill long;                                              /* Reserved             */
  7413.         fill word;                                              /* Reserved             */
  7414.         fill long;                                              /* Reserved             */
  7415.         fill long;                                              /* Reserved             */
  7416.         wide array ColorInfo {
  7417.             unsigned integer;                                   /* RGB: red             */
  7418.             unsigned integer;                                   /*      green           */
  7419.             unsigned integer;                                   /*      blue            */
  7420.             integer     pmCourteous, pmDithered, pmTolerant,    /* Color usage          */
  7421.                         pmAnimated = 4, pmExplicit = 8;
  7422.             integer;                                            /* Tolerance value      */
  7423.             fill word;                                          /* Private flags        */
  7424.             fill long;                                          /* Private              */
  7425.         };
  7426. };
  7427. æC 
  7428.  
  7429. æKY ppat
  7430. æFr Types.r
  7431. æT 
  7432. æD #ifdef oldTemp
  7433. /*------------------------ppat • Pixel Pattern old template---------------------------------*/
  7434.     type 'ppat' {
  7435.             /* PixPat record */
  7436.             integer     oldPattern,                                 /* Pattern type         */
  7437.                         newPattern,
  7438.                         ditherPattern;
  7439.             unsigned longint = PixMap / 8;                          /* Offset to pixmap     */
  7440.             unsigned longint = PixelData / 8;                       /* Offset to data       */
  7441.             fill long;                                              /* Expanded pixel image */
  7442.             fill word;                                              /* Pattern valid flag   */
  7443.             fill long;                                              /* expanded pattern     */
  7444.             hex string [8];                                         /* old-style pattern    */
  7445.     
  7446.             /* PixMap record */
  7447.     PixMap:
  7448.             fill long;                                              /* Base address         */
  7449.             unsigned bitstring[1] = 1;                              /* New pixMap flag      */
  7450.             unsigned bitstring[2] = 0;                              /* Must be 0            */
  7451.             unsigned bitstring[13];                                 /* Offset to next row   */
  7452.             rect;                                                   /* Bitmap bounds        */
  7453.             integer;                                                /* pixMap vers number   */
  7454.             integer     unpacked;                                   /* Packing format       */
  7455.             unsigned longint;                                       /* size of pixel data   */
  7456.             unsigned hex longint;                                   /* h. resolution (ppi) (fixed) */
  7457.             unsigned hex longint;                                   /* v. resolution (ppi) (fixed) */
  7458.             integer         chunky, chunkyPlanar, planar;           /* Pixel storage format */
  7459.             integer;                                                /* # bits in pixel      */
  7460.             integer;                                                /* # components in pixel*/
  7461.             integer;                                                /* # bits per field     */
  7462.             unsigned longint;                                       /* Offset to next plane */
  7463.             unsigned longint = ColorTable / 8;                      /* Offset to color table*/
  7464.             fill long;                                              /* Reserved             */
  7465.         
  7466.     PixelData:
  7467.             hex string [(ColorTable - PixelData) / 8];
  7468.     
  7469.     ColorTable:
  7470.             unsigned hex longint;                                   /* ctSeed               */
  7471.             integer;                                                /* ctFlags              */
  7472.             integer = $$Countof(ColorSpec) - 1;                     /* ctSize               */
  7473.             wide array ColorSpec {
  7474.                     integer;                                        /* value                */
  7475.                     unsigned integer;                               /* RGB: red             */
  7476.                     unsigned integer;                               /*      green           */
  7477.                     unsigned integer;                               /*      blue            */
  7478.             };
  7479.     };
  7480. #else
  7481. /*----------------------------ppat • Pixel Pattern--------------------------------------*/
  7482.     type 'ppat' {
  7483.             /* PixPat record */
  7484.             integer = 1 /* newPattern */;                           /* Pattern type         */
  7485.             unsigned longint = PixMap / 8;                          /* Offset to pixmap     */
  7486.             unsigned longint = PixelData / 8;                       /* Offset to data       */
  7487.             fill long;                                              /* Expanded pixel image */
  7488.             fill word;                                              /* Pattern valid flag   */
  7489.             fill long;                                              /* expanded pattern     */
  7490.             hex string [8];                                         /* old-style pattern    */
  7491.     
  7492.             /* PixMap record */
  7493.     PixMap:
  7494.             fill long;                                              /* Base address         */
  7495.             unsigned bitstring[1] = 1;                              /* New pixMap flag      */
  7496.             unsigned bitstring[2] = 0;                              /* Must be 0            */
  7497. pMapRowBytes:
  7498.             unsigned bitstring[13];                                 /* Offset to next row   */
  7499.     Bounds: rect;                                                   /* Bitmap bounds        */
  7500.             integer = 0;                                            /* pixMap vers number   */
  7501.             integer = 0;                                            /* Packing format       */
  7502.             fill long;                                              /* Size of pixel data   */
  7503.             unsigned hex longint = $00480000;                       /* h. resolution (ppi)  */
  7504.             unsigned hex longint = $00480000;                       /* v. resolution (ppi)  */
  7505.             integer = 0 /* chunky */;                               /* Pixel storage format */
  7506.     PixelSize:
  7507.             integer;                                                /* # bits in pixel      */
  7508.             integer = 1;                                            /* # components in pixel*/
  7509.             integer = $$Word(PixelSize);                            /* # bits per field     */
  7510.             fill long;
  7511.             unsigned longint = ColorTable / 8;
  7512.             fill long;
  7513.     
  7514.     PixelData:
  7515.             hex string [PixMapRowBytes * PixMapHeight];
  7516.     
  7517.     ColorTable:
  7518.             unsigned hex longint = 0;                               /* ctSeed               */
  7519.             integer = 0;                                            /* ctFlags              */
  7520.             integer = $$Countof(ColorSpec) - 1;                     /* ctSize               */
  7521.             wide array ColorSpec {
  7522.                     integer;                                        /* value                */
  7523.                     unsigned integer;                               /* RGB: red             */
  7524.                     unsigned integer;                               /*      green           */
  7525.                     unsigned integer;                               /*      blue            */
  7526.             };
  7527.     };
  7528. #endif
  7529. æC 
  7530.  
  7531. æKY SICN
  7532. æFr Types.r
  7533. æT 
  7534. æD /*----------------------------SICN • Small Icon-----------------------------------------*/
  7535. type 'SICN' {
  7536.         array {
  7537.                 hex string[32];                                 /* SICN data            */
  7538.         };
  7539. };
  7540. æC 
  7541.  
  7542. æKY ignoreAppDiedEvents         
  7543. æFr Types.r
  7544. æT #define
  7545. æD #define ignoreAppDiedEvents          ignoreChildDiedEvents
  7546. æC 
  7547.  
  7548. æKY acceptAppDiedEvents         
  7549. æFr Types.r
  7550. æT #define
  7551. æD #define acceptAppDiedEvents          acceptChildDiedEvents
  7552. æC 
  7553.  
  7554. æKY needsActivateOnFGSwitch     
  7555. æFr Types.r
  7556. æT #define
  7557. æD #define needsActivateOnFGSwitch      notMultiFinderAware          /* for compatibility */
  7558. æC 
  7559.  
  7560. æKY doesActivateOnFGSwitch      
  7561. æFr Types.r
  7562. æT #define
  7563. æD #define doesActivateOnFGSwitch       multiFinderAware             /* for compatibility */
  7564. æC 
  7565.  
  7566. æKY dontSaveScreen              
  7567. æFr Types.r
  7568. æT #define
  7569. æD #define dontSaveScreen               reserved                     /* for compatibility */
  7570. æC 
  7571.  
  7572. æKY saveScreen                  
  7573. æFr Types.r
  7574. æT #define
  7575. æD #define saveScreen                   true                         /* for compatibility */
  7576. æC 
  7577.  
  7578. æKY enableOptionSwitch          
  7579. æFr Types.r
  7580. æT #define
  7581. æD #define enableOptionSwitch           reserved                     /* for compatibility */
  7582. æC 
  7583.  
  7584. æKY disableOptionSwitch         
  7585. æFr Types.r
  7586. æT #define
  7587. æD #define disableOptionSwitch          true                         /* for compatibility */
  7588. æC 
  7589.  
  7590. æKY SIZEtype
  7591. æFr Types.r
  7592. æT #define
  7593. æD 
  7594. type 'SIZE' {
  7595.         boolean                 reserved;
  7596.         boolean                 ignoreSuspendResumeEvents,      /* suspend-resume       */
  7597.                                 acceptSuspendResumeEvents;
  7598.         boolean                 reserved;
  7599.         boolean                 cannotBackground,
  7600.                                 canBackground;                  /* Can properly use back-
  7601.                                                                    ground null events   */
  7602.         boolean                 needsActivateOnFGSwitch,        /* activate/deactivate  */
  7603.                                 doesActivateOnFGSwitch;         /* on resume/suspend    */
  7604.         boolean                 backgroundAndForeground,        /* Application does not */
  7605.                                 onlyBackground;                 /* have a user interface*/
  7606.         boolean                 dontGetFrontClicks,             /* Get mouse down/up    */
  7607.                                 getFrontClicks;                 /* when suspended       */
  7608.         boolean                 ignoreAppDiedEvents,            /* Apps use this.       */
  7609.                                 acceptAppDiedEvents;            /* Debuggers use this.  */
  7610.         boolean                 not32BitCompatible,             /* Works with 24bit addr*/
  7611.                                 is32BitCompatible;              /* Works with 24 or 32  */
  7612.                                                                 /* bit addresses        */
  7613. /* next four bits are new for system 7.0 */
  7614.         boolean                 notHighLevelEventAware,             
  7615.                                 isHighLevelEventAware;          /* does Post/AcceptHighLevelEvent */
  7616.         boolean                 onlyLocalHLEvents,              /* paranoid users' flag */
  7617.                                 localAndRemoteHLEvents;         
  7618.         boolean                 notStationeryAware,             /* checks stationery bit */         
  7619.                                 isStationeryAware;              /* when opening documents */
  7620.         boolean                 dontUseTextEditServices,        /* can use text services */
  7621.                                 useTextEditServices;            /* through TextEdit.     */ 
  7622.                                 
  7623. #undef reserved
  7624.         boolean                 reserved;                       /* These 3 bits are     */
  7625.         boolean                 reserved;                       /* reserved.  Set them  */
  7626.         boolean                 reserved;                       /* to "reserved". When  */
  7627.                                                                 /* we decide to define  */
  7628.                                                                 /* a new flag, your     */
  7629.                                                                 /* old resource will    */
  7630.                                                                 /* still compile.       */
  7631.  
  7632.         /* Memory sizes are in bytes */
  7633.         unsigned longint;                                       /* preferred mem size   */
  7634.         unsigned longint;                                       /* minimum mem size     */
  7635.  
  7636.         // If we ever define one of the four reserved bits above, the "reserved"
  7637.         // enumeration wouldn't appear on the newly defined bit.  By defining "reserved"
  7638.         // below, old resource SIZE declarations will still compile.
  7639. #define reserved        false
  7640. };
  7641. æC 
  7642.  
  7643. æKY STR 
  7644. æFr Types.r
  7645. æT 
  7646. æD /*----------------------------STR  • Pascal-Style String--------------------------------*/
  7647. type 'STR ' {
  7648.         pstring;                                                /* String               */
  7649. };
  7650. æC 
  7651.  
  7652. æKY STR#
  7653. æFr Types.r
  7654. æT 
  7655. æD /*----------------------------STR# • Pascal-Style String List---------------------------*/
  7656. type 'STR#' {
  7657.         integer = $$Countof(StringArray);
  7658.         array StringArray {
  7659.                 pstring;                                        /* String               */
  7660.         };
  7661. };
  7662. æC 
  7663.  
  7664. æKY wctb
  7665. æFr Types.r
  7666. æT 
  7667. æD /*----------------------------wctb • Window Color Lookup Table--------------------------*/
  7668. type 'wctb' as 'actb';
  7669. æC 
  7670.  
  7671. æKY WIND
  7672. æFr Types.r
  7673. æT 
  7674. æD /*----------------------------WIND • Window Template------------------------------------*/
  7675. type 'WIND' {
  7676.         rect;                                                   /* boundsRect           */
  7677.         integer         documentProc,                           /* procID               */
  7678.                         dBoxProc,
  7679.                         plainDBox,
  7680.                         altDBoxProc,
  7681.                         noGrowDocProc,
  7682.                         movableDBoxProc,
  7683.                         zoomDocProc = 8,
  7684.                         zoomNoGrow = 12,
  7685.                         rDocProc = 16;
  7686.         byte            invisible, visible;                     /* visible              */
  7687.         fill byte;
  7688.         byte            noGoAway, goAway;                       /* goAway               */
  7689.         fill byte;
  7690.         unsigned hex longint;                                   /* refCon               */
  7691.         pstring         Untitled = "Untitled";                  /* title                */
  7692.     /*  The following are window positioning options ,usable in 7.0 */
  7693. #if SystemSevenOrLater
  7694.         align word;
  7695.         unsigned integer                noAutoCenter = 0x0000,
  7696.                                         centerMainScreen = 0x280a,
  7697.                                         alertPositionMainScreen = 0x300a,
  7698.                                         staggerMainScreen = 0x380a,
  7699.                                         centerParentWindow = 0xa80a,
  7700.                                         alertPositionParentWindow = 0xb00a,
  7701.                                         staggerParentWindow = 0xb80a,
  7702.                                         centerParentWindowScreen = 0x680a,
  7703.                                         alertPositionParentWindowScreen = 0x700a,
  7704.                                         staggerParentWindowScreen = 0x780a;
  7705. #endif
  7706. };
  7707. æC 
  7708.  
  7709. æKY RECT
  7710. æFr Types.r
  7711. æT 
  7712. æD /*--------------------------------------------------------------------------------------*/
  7713.  
  7714. /* resource containing a single rectangle */
  7715.  
  7716.     type 'RECT' { rect; };
  7717.  
  7718. æC 
  7719.  
  7720. æKY silentStage
  7721. æFr Types.r
  7722. æT #define
  7723. æD #define silentStage OK, visible, silent
  7724. æC 
  7725.  
  7726. æKY silentStages
  7727. æFr Types.r
  7728. æT #define
  7729. æD #define silentStages { silentStage; silentStage; silentStage; silentStage; }
  7730. æC 
  7731.  
  7732. æKY beepStage
  7733. æFr Types.r
  7734. æT #define
  7735. æD #define beepStage OK, visible, sound1
  7736. æC 
  7737.  
  7738. æKY beepStages
  7739. æFr Types.r
  7740. æT #define
  7741. æD #define beepStages { beepStage; beepStage; beepStage; beepStage; }
  7742. æC 
  7743.  
  7744. æKY whiteRGB
  7745. æFr Types.r
  7746. æT #define
  7747. æD #define whiteRGB $FFFF, $FFFF, $FFFF
  7748. æC 
  7749.  
  7750. æKY blackRGB
  7751. æFr Types.r
  7752. æT #define
  7753. æD #define blackRGB 0, 0, 0
  7754. æC 
  7755.  
  7756. æKY transparentRGB
  7757. æFr Types.r
  7758. æT #define
  7759. æD #define transparentRGB $FFFF, $FFFF, $FFFF
  7760. æC 
  7761.  
  7762. æKY invertRGB
  7763. æFr Types.r
  7764. æT #define
  7765. æD #define invertRGB 0, 0, 0
  7766. æC 
  7767.  
  7768. æKY ics#
  7769. æFr Types.r
  7770. æT 
  7771. æD 
  7772. /* small icons with masks */
  7773.  
  7774.     type 'ics#' {
  7775.         array [2] {
  7776.             hex string[32];
  7777.         };
  7778.     };
  7779.     type 'kcs#' as 'ics#';                              /* Keyboard small icon <8> */
  7780.  
  7781. æC 
  7782.  
  7783. æKY icm#
  7784. æFr Types.r
  7785. æT 
  7786. æD /* mini icons with masks */
  7787.  
  7788.     type 'icm#' {
  7789.         array [2] {
  7790.             hex string[24];
  7791.         };
  7792.     };
  7793.  
  7794. æC 
  7795.  
  7796. æKY icm8
  7797. æFr Types.r
  7798. æT 
  7799. æD /* 8-bit color mini icon--no mask, no color table */
  7800.  
  7801.     type 'icm8' {
  7802.         hex string[192];
  7803.     };
  7804.     
  7805. æC 
  7806.  
  7807. æKY icm4
  7808. æFr Types.r
  7809. æT 
  7810. æD /* 4-bit color mini icon--no mask, no color table */
  7811.  
  7812.     type 'icm4' {
  7813.         hex string[96];
  7814.     };
  7815.     
  7816. æC 
  7817.  
  7818. æKY icl8
  7819. æFr Types.r
  7820. æT 
  7821. æD /* 8-bit color icon--no mask, no color table */
  7822.  
  7823.     type 'icl8' {
  7824.         hex string[1024];
  7825.     };
  7826.     type 'kcl8' as 'icl8';                              /* Keyboard 8-bit color icon <8> */
  7827.     
  7828. æC 
  7829.  
  7830. æKY icl4
  7831. æFr Types.r
  7832. æT 
  7833. æD /* 4-bit color icon--no mask, no color table */
  7834.  
  7835.     type 'icl4' {
  7836.         hex string[512];
  7837.     };
  7838.     type 'kcl4' as 'icl4';                              /* Keyboard 4-bit color icon <8> */
  7839.     
  7840. æC 
  7841.  
  7842. æKY ics8
  7843. æFr Types.r
  7844. æT 
  7845. æD /* 8-bit color small icon--no mask, no color table */
  7846.  
  7847.     type 'ics8' {
  7848.         hex string[256];
  7849.     };
  7850.     type 'kcs8' as 'ics8';                              /* Keyboard 8-bit small color icon <8> */
  7851.     
  7852. æC 
  7853.  
  7854. æKY ics4
  7855. æFr Types.r
  7856. æT 
  7857. æD /* 4-bit color small icon--no mask, no color table */
  7858.  
  7859.     type 'ics4' {
  7860.         hex string[128];
  7861.     };
  7862.     type 'kcs4' as 'ics4';                              /* Keyboard 4-bit small color icon <8> */
  7863.  
  7864. æC 
  7865.  
  7866. æKY ppt#
  7867. æFr Types.r
  7868. æT 
  7869. æD /* a list of pixpats; Rez can’t yet handle this correctly */
  7870.  
  7871.     type 'ppt#' {
  7872.             /* PixPat offsets (calculate them some day!?!) */
  7873.             integer = $$CountOf(OffsetArray);
  7874.             array OffsetArray /* [$$CountOf(PixPatArray)] */ {
  7875.                 unsigned longint /* = PixPat[$$ArrayIndex(OffsetArray)] / 8 */;
  7876.             };
  7877.  
  7878.         array PixPatArray {
  7879. PixPat:
  7880.             /* PixPat record */
  7881.             integer = 1 /* newPattern */;                           /* Pattern type         */
  7882.             unsigned longint = PixMap[$$ArrayIndex(PixPatArray)] / 8;   /* Offset to pixmap     */
  7883.             unsigned longint = PixelData[$$ArrayIndex(PixPatArray)] / 8;    /* Offset to data       */
  7884.             fill long;                                              /* Expanded pixel image */
  7885.             fill word;                                              /* Pattern valid flag   */
  7886.             fill long;                                              /* expanded pattern     */
  7887.             hex string [8];                                         /* old-style pattern    */
  7888.  
  7889.             /* PixMap record */
  7890. PixMap:
  7891.             fill long;                                              /* Base address         */
  7892.             unsigned bitstring[1] = 1;                              /* New pixMap flag      */
  7893.             unsigned bitstring[2] = 0;                              /* Must be 0            */
  7894. pMapRowBytesIndexed:
  7895.             unsigned bitstring[13];         /* Offset to next row   */
  7896. Bounds:     rect;                                                   /* Bitmap bounds        */
  7897.             integer = 0;                                            /* pixMap vers number   */
  7898.             integer = 0;                                            /* Packing format       */
  7899.             fill long;                                              /* Size of pixel data   */
  7900.             unsigned hex longint = $00480000;                       /* h. resolution (ppi)  */
  7901.             unsigned hex longint = $00480000;                       /* v. resolution (ppi)  */
  7902.             integer = 0 /* chunky */;                               /* Pixel storage format */
  7903. PixelSize:
  7904.             integer;                                                /* # bits in pixel      */
  7905.             integer = 1;                                            /* # components in pixel*/
  7906.             integer = $$Word(PixelSize[$$ArrayIndex(PixPatArray)]); /* # bits per field     */
  7907.             fill long;
  7908.             unsigned longint = ColorTable[$$ArrayIndex(PixPatArray)] / 8;
  7909.             fill long;
  7910.  
  7911. PixelData:
  7912.             hex string [PixMapRowBytesIndexed * PixMapHeightIndexed];
  7913.  
  7914. ColorTable:
  7915.             unsigned hex longint = 0;                               /* ctSeed               */
  7916.             integer = 0;                                            /* ctFlags              */
  7917.             integer = $$Countof(ColorSpec[$$ArrayIndex(PixPatArray)]) - 1;                      /* ctSize               */
  7918.             wide array ColorSpec {
  7919.                     integer = $$ArrayIndex(ColorSpec[$$ArrayIndex(PixPatArray)]) - 1;           /* value                */
  7920.                     unsigned integer;                               /* RGB: red             */
  7921.                     unsigned integer;                               /*      green           */
  7922.                     unsigned integer;                               /*      blue            */
  7923.             };
  7924.         };
  7925.     };
  7926.  
  7927. æC 
  7928.  
  7929. æKY wstr
  7930. æFr Types.r
  7931. æT 
  7932. æD /* types for the Database Access Manager */
  7933.  
  7934. /* 'wstr' - Word Length String Resource */
  7935. type 'wstr' {
  7936.         wstring;                                                /* string with word length spec. */
  7937. };
  7938. æC 
  7939.  
  7940. æKY qrsc
  7941. æFr Types.r
  7942. æT 
  7943. æD /* 'qrsc' - Query Resource */
  7944. type 'qrsc' {
  7945.         integer;                                                /* version */
  7946.  
  7947.         integer;                                                /* 'qdef' ID */
  7948.  
  7949.         integer;                                                /* STR# ID for ddevName, host,
  7950.                                                                      user, password, connstr */
  7951.  
  7952.         integer;                                                /* current query */
  7953.  
  7954.         /* array of IDs of 'wstr' resources containing queries */
  7955.         integer = $$CountOf(QueryArray);                        /* array size */
  7956.         wide array QueryArray {
  7957.             integer;                                            /* id of 'wstr' resource */
  7958.         };
  7959.  
  7960.         /* array of types and IDs for other resources for query */
  7961.         integer = $$CountOf(ResArray);                          /* array size */
  7962.         wide array ResArray {
  7963.             literal longint;                                    /* resource type */
  7964.             integer;                                            /* resource ID */
  7965.         };
  7966. };
  7967. æC 
  7968.  
  7969. æKY dflg
  7970. æFr Types.r
  7971. æT 
  7972. æD /* 'dflg' - ddev Flags */
  7973. type 'dflg' {
  7974.         longint;                                                /* version */
  7975.  
  7976.         unsigned bitstring[32]                                  /* ddev flags */
  7977.             asyncNotSupp, asyncSupp;
  7978. };
  7979.  
  7980. /*--------------------------------------------------------------------------------------*/
  7981.  
  7982.  
  7983. #endif __TYPES.R__
  7984.  
  7985.  
  7986.  
  7987.  
  7988.